Funzione ricorsiva fibonacci

mathys
ciao sto studiando la funzione ricorsiva con la funzione di fibonacci:
int fibonacci(int num){
if(num<=1)
return num;

return (fibonacci(num-1)+fibonacci(num-2));
}

solo che non capisco come funziona ad ogni ciclo, potete aiutarmi nel capire dove sbaglio????
spiego il mio ragionamento:
se chiamo la funzione ricercando il numero 5, avro:

fibonacci (5-1) +fibonacci (5-2)
fibonacci (4-1) + fibonacci(3-2)
fibonacci (3-1) + fibonacci (1-2)

scusate ma non capisco come fa a venire 5 (il risultato dell'operazione)
grazie a chi gentilmente vuole darmi una mano :? :?

Risposte
dab1
Devi immaginare le chiamate effettuate dall'algoritmo in un cosiddetto "Albero di ricorsione".
Qui un esempio:

mathys
ci ero arrivato dopo ore di ragionamento ma il tuo grafico mi ha aiutato ugualmente!
grazie

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.