2004 – 3

Si consideri il seguente frammento di programma

Dire che cosa calcola la funzione A() assumendo che venga invocata passando un intero positivo.


Soluzione: la somma dei numeri da 1 a n.


Compila la tabella

n A(n) B(n)
0 0 0
1 B(1) = 1 1+A(0) = 1+0 = 1
2 2+B(2) = 2+A(1) = 2+1 = 3 A(1) = 1
3 B(3) = 6 3+A(2) = 3+3 = 6
4 4+B(4) = 4+6 = 10 A(3) = 6
5 B(5) = 15 5+A(4) = 5+10 = 15
6 6+B(6) = 6+15 = 21 A(5) = 15

Osserva l’alternativa

A(5) = B(5) = 5+A(4) = 5+4+B(4) = 5+4+A(3) = 5+4+B(3) = 5+4+3+A(2) = 5+4+3+2+B(2) = 5+4+3+2+A(1) = 5+4+3+2+B(1) = 5+4+3+2+1+A(0) = 5+4+3+2+1+0 = 15

Notice: This work is licensed under a BY-NC-SA. Permalink: 2004 – 3

Comments are closed.