👤

Fiind dat un număr natural n, să se determine cel mai mic număr natural m format din aceleași cifre cu n. De ex. pentru n=3658, m=3568.codul in C++,va rog

Răspuns :

#include <iostream>

using namespace std;

int n, m, i, j, cif, fr[10];

int main()

{

   cout << "introdu numar natural: "; cin >> n;

   while (n>0)

   {

       cif=n%10;

       ++fr[cif];

       n=n/10;

   }

   if (fr[0]>0)

   {

       i=1;

       while (fr[i]==0) ++i;

       m=i;

       --fr[i];

   }

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

   {

       if (fr[i]>0)

       {

           for (j=1; j<=fr[i]; ++j)

               m=m*10+i;

       }

   }

   cout << m;

}