È dato il seguente programma:
#includeint f(int i) { if(i <= 1) return(i); else if(i%2 == 0) return(-i*f(i-1)); else return(i*f(i-1)); } main() { printf("num = %d\n", f(7)); } Cosa viene visualizzato a video dall'esecuzione di main()?
Soluzione: -5040
Osserva
- f(0) = 0
- f(1) = 1
- f(2) = -2*f(1) = -2*1 = -2
- f(3) = 3*f(2) = 3*-2 = -6
- f(4) = -4*f(3) = -4*-6 = 24
- f(5) = 5*f(4) = 5*24 = 120
- f(6) = -6*f(5) = -6*120 = -720
- f(7) = 7*f(6) = 7*-720 = -5040