diff --git a/elaborato3.cpp b/elaborato3.cpp index 30373b0..61eb4c1 100644 --- a/elaborato3.cpp +++ b/elaborato3.cpp @@ -5,29 +5,42 @@ Elaborato 3 #include using namespace std; int main(void) { - unsigned int numero,invertito = 0,resto,complemento,cifre = 1,temp = 0,potenza = 1; + unsigned int numero = 0,invertito = 0,resto,complemento,cifre = 0,temp = 0,potenza = 1,zeri = 0; cout << "Inserisci un numero intero positivo: "; cin >> numero; cout << endl; - temp = numero; - //Inversione Cifre - while (temp > 0){ - resto = numero % 10; - invertito = invertito * 10 + resto; - temp = (numero - resto) / 10; + if (numero == 0) { + cout << "Il numero 0 non e' consentito" << endl; + return 0; } temp = numero; - //Complemento a 10 + //Inversione Cifre + do { + resto = temp % 10; + invertito = (invertito * 10) + resto; + temp = temp / 10; + } while (temp != 0); + //Complemento a 10: conta il numero di cifre per la potenza di 10. + temp = numero; do { temp = temp / 10; cifre++; } while (temp != 0); - while (cifre > 0) { + do { potenza = potenza * 10; cifre--; - } + } while (cifre > 0); complemento = potenza - numero; - cout << "Il numero " << numero << "invertito e': " << invertito << endl; + //Conta gli zeri + temp = numero; + while (temp > 0) { + if (temp % 10 == 0) { + zeri++; + } + temp /= 10; // Rimuoviamo l'ultima cifra + } + cout << "Il numero " << numero << " invertito e': " << invertito << endl; cout << "Il complemento a 10 di " << numero << " e': " << complemento << endl; + cout << "Il numero di zeri contenuti nel numero " << numero << " e': " << zeri << endl; return 0; }