Salve a tutti.
Ho un problema su un programma C++.
La traccia è la seguente:
Scrivere un programma che, letto da input un intero positivo N stampi il valore Nmax-Nmin, dove Nmax
(risp. Nmin) è il più grande (risp. piccolo) intero ottenibile utilizzando tutte e sole le cifre che compongono
N. Si può supporre che N consista di al massimo 10 cifre.
Esempi
Per N=12345, Nmax=54321, Nmin = 12345 e il programma dovrà stampare 41976 (che è il risultato della
sottrazione 54321-12345.
Per N=327, Nmax=732, Nmin = 237 e il programma dovrà stampare 495 (che è il risultato della sottrazione
54321-12345.
Per N=0, Nmax=0, Nmin =0 e il programma dovrà stampare 0.
Per N =111111, Nmax=111111, Nmin=111111 e il programma dovrà stampare 0.
L'esercizio non prevede uso di array.
Ho provato a risolverlo in questo modo:
CODICE:
codice:
int main()
{
int num,num1;
int tmp=0;
int inv=0;
int diff=0;
cin>>num;
num1=num;
while(num>0)
{
tmp = num%10;
num = num/10;
inv = inv*10+tmp;
}
cout<<inv;
diff=inv-num1;
cout<<diff;
return 0;
}
Il problema è che se inserisco un numero come quello dell'esempio due (327) ovviamente non lo ordina dato che è un metodo di inversione di cifre. Non saprei quale altro metodo e chiedo urgente aiuto.
Grazie in anticipo! Spero possiate aiutarmi!