Un problema matematico, prima ancora che informatico, ma molto interessante per spremere le meningi degli studenti. L’esercizio è apparentemente semplice: prendere in ingresso un numero intero es. 1234 e stampare il suo inverso 4321. Vediamo come.
Il problema è di natura matematica. Si poggia sulle divisioni intere successive per 10 che permettono di tagliare fuori una cifra a destra, mentre usiamo il modulo % 10 per ottenere il resto e usarlo pesandolo moltiplicandolo di 10 in dieci. Detto così sembra semplice. La difficoltà per lo studente alle prime armi nel cogliere la soluzione è nel creare ed usare la variabile risultato che si comporta un po’ come un accumulatore, che viene usato ed aggiornato all’interno del ciclo e come condizione di uscita.
using namespace std;
int inverti(int num)
{
int risultato = 0;
while (num!=0)
{
risultato = risultato * 10 + num % 10;
num = num / 10;
}
return risultato;
}
int main()
{
int num = 0;
cin >> num;
num = inverti(num);
cout << num;
return 0;
}
Ultima modifica 5 Aprile 2023