Fibonacci recursivo
Implementação de uma função recursiva para determinar os termos da sequência de Fibonacci. O código, em C++, apresenta duas funções: uma utilizando recursividade e outra sem.
No caso da função recursiva, veja que ela recebe 2 parâmetros a mais do que a função sem utilizar recursividade. Isso porque é preciso informar quais foram os dois últimos valores da sequência para poder gerar o novo valor através da chamada da função. Veja também que esses parâmetros possuem um valor padrão (valor 1 para ambos) e por isso, quando a função é inicialmente chamada (linha 29 do código), não é preciso fornecer valor algum.
#include <iostream>
using namespace std;
//Parâmetros: número de termos, último número e penúltimo número
void fibonacciRecursivo(int limite, int ult = 1, int pen = 1) {
if (limite > 0) {
int prox = ult + pen;
cout << prox << " ";
fibonacciRecursivo(limite-1, pen, prox);
}
}
void fibonacciNaoRecursivo(int limite) {
int ult = 1, pen = 1, prox;
while (limite > 0) {
prox = ult + pen;
ult = pen;
pen = prox;
limite--;
cout << prox << " ";
}
}
int main() {
fibonacciNaoRecursivo(8);
cout << endl;
fibonacciRecursivo(8);
return 0;
}