Am o problemă la info ce nu-mi iese nicicum.
Enunțul este următorul:
Subprogramul cif, cu doi parametri, primeşte prin intermediul parametrului a un număr
natural cu cel mult 8 cifre şi prin intermediul parametrului b o cifră; subprogramul returnează numărul de apariţii ale cifrei b în scrierea numărului a.
Exemplu: pentru a=125854 şi b=5, subprogramul va returna valoarea 2.
a) Scrieţi definiţia completă a subprogramului cif. (4p.)
b) Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n cu exact 8 cifre şi care determină şi afişează pe ecran, folosind apeluri utile ale subprogramului cif, cel mai mare număr palindrom ce poate fi obţinut prin rearanjarea tuturor cifrelor numărului n. Dacă nu se poate obţine un palindrom din toate cifrele numărului n, programul va afişa pe ecran numărul 0. Un număr natural este palindrom dacă este egal cu numărul obţinut prin scrierea cifrelor sale în ordine inversă.
Exemplu: dacă n=21523531 atunci se va afişa pe ecran numărul 53211235, iar dacă
n=12272351 atunci se va afişa pe ecran numărul 0.
Răspunsuri la întrebare
Răspuns de
9
#include <iostream>
using namespace std;
int cif(int a, int b)
{
int x=0;
while(a)
{
if(a%10==b)
x++;
a/=10;
}
return x;
}
int main()
{
int v[10]={0};
int x,k=0,n=0,z=0,i;
cin>>x;
for(i=0;i<10;i++)
{
v[i]=cif(x,i);
if(v[i]%2!=0)
k++;
if(v[i])
z+=v[i];
}
if(k>1)
cout<<0;
else
{
for(i=9;i>=0;i--)
if(v[i] && v[i]!=1)
{
n+=i;
n*=10;
}
for(i=0;i<=9;i++)
if(v[i] && v[i]!=1)
{
n+=i;
n*=10;
}
n/=10;
cout<<n;
}
return 0;
}
using namespace std;
int cif(int a, int b)
{
int x=0;
while(a)
{
if(a%10==b)
x++;
a/=10;
}
return x;
}
int main()
{
int v[10]={0};
int x,k=0,n=0,z=0,i;
cin>>x;
for(i=0;i<10;i++)
{
v[i]=cif(x,i);
if(v[i]%2!=0)
k++;
if(v[i])
z+=v[i];
}
if(k>1)
cout<<0;
else
{
for(i=9;i>=0;i--)
if(v[i] && v[i]!=1)
{
n+=i;
n*=10;
}
for(i=0;i<=9;i++)
if(v[i] && v[i]!=1)
{
n+=i;
n*=10;
}
n/=10;
cout<<n;
}
return 0;
}
sectumsempra:
Îți mulțumesc mult de toooot, mi-ai fost de mare ajutor! O zi faină-ți doresc :D
Alte întrebări interesante
Chimie,
8 ani în urmă
Informatică,
8 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă
Limba română,
9 ani în urmă