Pages

Questão EPO - Recursividade

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

Um comentário:

Alessandra disse...

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

 
Copyright (c) 2010. Blogger templates by Bloggermint