2008 – 8

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.