Gostaria de entender melhor o funcionamento de funções recursivas, alguns códigos eu faço o chinês do algoritmo e entendo, mas tem uns q eu tenho uma enorme dificuldade de entender 100%. Um exemplo é o código em c++ da função de fibonacci:
int main(void){
int termo;
double fibo;
cout<<"Digite o termo de fibonacci que deseja saber: "<<endl;
cin>>termo;
cin.ignore();
if(termo==0){
cout<<"Nao existe termo 0!"<<endl;
main();
}
cout<<"\nAguarde! Processando..."<<endl;
fibo = fibonacci(termo-1);
cout<<"O "<<termo<<"o. termo da sequencia de Fibonacci eh: "<<fibo<<endl;
system("pause");
return EXIT_SUCCESS;
}
}
double fibonacci(int t){
if(t==0 || t==1){
return 1;
}else{
return fibonacci(t-1)+fibonacci(t-2);
}
}
Eu pedi p calcular o 8 termo da série e o valor é 21, mas na hora q vou executar o código passo a passo na mão eu acabo me perdendo nesse return do else onde é feito a soma. Alguém conseguiria me explicar melhor como fumciona esse código