👤

Să se scrie o funcție C++ care să returneze cel mai mic număr care se poate scrie cu cifrele unui număr natural transmis ca parametru.



Răspuns :

int mincifre(int nr){    int x=0,p=1,c[10]={},pf=1,p0=1;    while(nr>0){        c[nr%10]++;        if(nr%10!=0)    p=p*10;        nr=nr/10;    }    if(p>1) p=p/10;    for(int i=1;i<=9;i++){        for(int k=1;k<=c[i];k++){            x=x*10 +i;        }    }    if(c[0]==0) return x;    else{         for(int k=1;k<=c[0];k++){            p0=p0*10;        }        x=(x/p)*p*p0+x%p;    }    return x;}