Arquivo da tag: fibonacci

Sequência de Fibonacci em C – Loop e Recursiva

programacao

Na matemática, a Sucessão de Fibonacci (também Sequência de Fibonacci), é uma sequência de números inteiros, começando normalmente por 0 e 1, na qual, cada termo subsequente (número de Fibonacci) corresponde a soma dos dois anteriores.

A sequência recebeu o nome do matemático italiano Leonardo de Pisa, mais conhecido por Fibonacci (contração do italiano filius Bonacci), que descreveu, no ano de 1202, o crescimento de uma população de coelhos, a partir desta. Tal sequência já era no entanto, conhecida na antiguidade.
Fonte: Wikipedia

Fórmula:
Fn = (Fn-1) + (Fn-2)

Exemplo de uma Sequência de Fibonacci com 10 números:
0, 1, 1, 2, 3, 5, 8, 13, 21 e 34.

* Em alguns exemplos o zero poderá estar omitido.

Algo como:
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
E por aí vai…

Vou demonstrar dois exemplos de algoritmos em C, um utilizará um for e outro será recursivo.

Utilizando Loop

#include<stdio.h>;

int main() {
    int qtd_seq;
    int primeiro = 0;
    int segundo = 1;
    int proximo;
    int i;

    printf("Entre com a quantidade de números da série: ");
    scanf("%d", &qtd_seq);

    printf("Os %d números da sequência de Fibonacci são:\n", qtd_seq);

    for (i = 0 ; i < qtd_seq ; i++ ) {
        if (i <= 1 )
            proximo = i;
        else {
            proximo = primeiro + segundo;
            primeiro = segundo;
            segundo = proximo;
        }
        printf("%d\n", proximo);
    }
    return 0;
}

Utilizando Recursividade

#include<stdio.h>

int fibonacci(int seq) {
     if (seq == 0) return 0;
     if (seq == 1) return 1;
     return fibonacci(seq - 1) + fibonacci(seq - 2);
}

int main() {
    int qtd_seq;
    int i;

    printf("Entre com a quantidade de números da série: ");
    scanf("%d", &qtd_seq);

    printf("Os %d números da sequência de Fibonacci são:\n", qtd_seq);

    for (i = 0 ; i < qtd_seq ; i++ )
        printf("%d\n", fibonacci(i));

    return 0;
}