Immagina un'esecuzione con 3 e 7... la sequenza di chiamate nel tuo programma iniziale è
somma(3,7) =
som + somma(4,7) = // som è uguale a 0
som + somma(5,7) = // som è uguale a 0
...
som (7,7) = 7
mentre nella versione modificata diventa
somma(3,7) =
som + somma(4,7) = // som è uguale a 3
3 + som + somma(5,7) = // som è uguale a 4
...
3 + 4 + 5 + 6 + somma(7,7) =
3 + 4 + 5 + 6 + 7
capito?![]()