Si consideri la seguente funzione:
int foo(int x) { int y = 0; while(x != 0) { y *= 10; y += x % 10; x /= 10; } return y; }Dire cosa restituisce la chiamata foo(4312).
Soluzione: 2134.
Osserva i passi del while() nella funzione
y | x | |
---|---|---|
0 | 4312 | |
4312 != 0 | 0*10 = 0 0+2 = 2 |
431 |
431 != 0 | 2*10 = 20 20+1 =21 |
43 |
43 != 0 | 21*10 = 210 210+3= 213 |
4 |
4 != 0 | 213*10 = 2130 2130+4= 2134 |
0 |
Restituisce il numero costruito con le cifre di x prese alla rovescia.