È dato il seguente programma:
#includeint max(int a, int b) { if(a > b) return a; return b; } int f(int a, int b) { if(a == 0) return b; return max(f(a-1,2*b), f(a-1,2*b+1)); } void main() { printf("%d ", f(8,0)); } Cosa viene visualizzato a video dall’esecuzione di main()?
Soluzione: 255
Osserva
f(8,0) = max(f(7,0), f(7,1)) = …f(6,3) = …f(5,7) = …f(4,15) = …f(3,31) = …f(2,63) = …f(1,127) = …f(0,255) = 255
La chiamata che restituisce il valore più alto è l’ultima a destra