Si consideri la funzione
int ES8(int m) { int a, b, c, g, t; a=m*m; b=a/2; c=4*b*a; t=m; g=m+a+t+t+a; while(g < b+a+c+c+a) { g=g+a+t+t+a; c=t+a+t+a; } return g; }
Dire cosa restituisce la chiamata ES8(2)
Risposte:
- 19
- 32
- 38
- nessuna delle precedenti.
Soluzione: c (38)
Considera la chiamata ES8(2) e osserva i valori assunti dalla variabili
- a=2*2=4
- b=4/2=2
- c=4*2*4=32
- t=2
- g=2+4+2+2+4=14
- (4 < 2+4+32+32+4) ?
- g=14+4+2+2+4=26
- c=2+4+2+4=12
- (26 < 2+4+12+12+4) ?
- g=26+4+2+2+4=38
- c=2+4+2+4=12
- (38 < 2+4+12+12+4) ? NO
g=38 soddisfa la risposta c.