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

Scrie o sa se scrie o functie c++ care sa returneze cel mai mic numar care se poate scrie cu cifrele unui numar natural transmis ca parametru

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

int cmmnr (int m)

{

   if (m<10) return m;

   else {

       int v[11],i,n,t;

       for (i=0;i<=10;++i) v[i]=0;

       int nc=0;

       while (m) {

           ++nc; v[nc]=m%10; m/=10;

       }

       for (i=1;i<nc;++i)

       for (int j=i+1;j<=nc;++j) {

           if (v[j]<v[i]){

               t=v[i]; v[i]=v[j]; v[j]=t;

           }

       }

       if (v[1]==0) {

           i=1;

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

            t=v[1]; v[1]=v[i]; v[i]=t;

       }

     

      n=0;

      for (i=1; i<=nc; ++i) n=n*10+v[i];

      return n;  

   }

}

Explicație:

se poate si cu vectorul de frecventa a cifrelor.... cred e nai rational....

Alte întrebări interesante