Informatică, întrebare adresată de GabriellaD, 8 ani în urmă

Se citește un număr natural n. Să se afișeze cel mai mare și cel mai mic numar care se poate forma cu cifrele numărului n. Numărul minim și numărul maxim vor avea același număr de cifre ca și n (nu poate începe cu cifra 0). Se va folosi un vector de frecvență.
Exemplu:
Dacă n este 52200996 atunci numerele cerute este 99652200 și 20025699.

Răspunsuri la întrebare

Răspuns de MariusCelTrifan
0

Răspuns:

#include <iostream>

using namespace std;

int main()

{

int n,i,a[10]={0},x,S=0,s=0,b[10];

cout<<"n=";

cin>>n;

while(n!=0)

{

   x=n%10;

   a[x]++;

   n=n/10;

}

for(i=9;i>=0;i--)

{

b[i]=a[i];

while(a[i]!=0)

{

   S=S*10+i;

   a[i]--;

   if(i>0 && a[i]>0)

       {x=i;s=x;}

}

}

cout<<"cel mai mare numar este "<<S<<endl;

b[x]--;

for(i=0;i<=9;i++)

while(b[i]!=0)

{s=s*10+i;b[i]--;}

cout<<"cel mai mic numar este "<<s;

return 0;

}

Explicație:

Multumesc+5*+cel mai bun raspuns?

Alte întrebări interesante