06. Es. svolto: speculare

Traccia:

Scrivere un programma che riceve da tastiera un numero intero positivo di due cifre e risponde scrivendo a video la somma tra il numero inserito e il suo speculare.

In questo esercizio per speculare di un numero naturale X si intende un numero che abbia le stesse cifre di X ma in ordine opposto. Ad esempio:

54 e 45

37 e 73

Esempio di esecuzione:

Inserire un numero intero positivo di due cifre: 45

45 + 54 = 99

Strategia:

Partiamo osservando che il risultato della divisione intera 45/10 è 4, la cifra delle decine.

Inoltre, 45-(4*10) da come risultato 5, la cifra delle unità.

In generale, se x è il numero di partenza:

decine = x/10;

unita = x - (decine * 10);

Banalmente si ha che

x è uguale al numero: (decine * 10) + unita

e che

speculare_x è uguale al numero: (unita * 10) + decine

Soluzione:


#include <stdio.h>

int main()

{

int x, unita, decine, speculare_x;

printf("Inserire un numero intero positivo di due cifre: ");

scanf("%d", &x);

if (x >= 100){

printf("Il numero inserito e' troppo grande!\n");

return 1; //termina con errore

}

if (x <= 9){

printf("Il numero inserito e' troppo piccolo!\n");

return 1; //termina con errore

}

decine = x/10;

unita = x - (decine*10);

speculare_x = unita*10 + decine;

printf("%d + %d = %d\n", x, speculare_x, x + speculare_x);

return 0;

}