Sabe-se que a sequência de Fibonacci é desenvolvida da seguinte forma: 0, 1, 1, 2, 3, 5, 8, 13, 21 ... , ou seja, soma-se o número por seu antecessor (1+2)= 3, (2+3)= 5, (3+5)= 8 e assim por diante.
De acordo com as informações acima, analise o programa abaixo e indique o código recursivo que satisfaz a lógica de Fibonacci.
#include <stdio.h>
#include <conio.h>
main() {
int n,i;
printf("Digite a quantidade de termos da sequencia de Fibonacci: ");
scanf("%d", &n);
printf("\nA sequencia de Fibonacci e: \n");
for(i=0; i<n; i++)
printf("%d ", fibonacci(i+1)); //Aqui chama a função fibonacci
getch();
}
int fibonacci(int num) {
//Código Recursivo
}
a) if(num==1 || num==2) { return 1; }
else { return fibonacci(num-1) + fibonacci(num-2);}
b) if(num==1 || num==2){ return 1; }
else{ return fibonacci(num) + fibonacci(num-1);}
c) if(num==1){ return 1; }
else{ return fibonacci(num+ num-1);}
d) if(num==1){ return 1; }
else{ return fibonacci(num-2 + num-1);}
e) NDA.
Fonte:
Questão desenvolvida com meus conhecimentos e com o código desde link:
http://www.vivaolinux.com.br/dica/Serie-de-Fibonacci-usando-recursividade-em-linguagem-C
Assinar:
Postar comentários (Atom)
Um comentário:
Conforme a questão, na lógica de fibonacci soma-se o número com seu antecessor para gerar o sucessor e assim por diante. Os números 1 e 2, se recebidos no parâmetro da função, geram 1 como resultado, ocasionando a sequência:
0, 1, 1, 2, 3, 5, 8, 13, 21
A alternativa que possui a função recursiva correta é a A.
Postar um comentário