Ir ao conteúdo
  • Cadastre-se

C Algoritmo Fibonacci em linguagem c


Adrian Simon

Posts recomendados

Pessoal, estou com dificuldades para implementar meu algoritmo de Fibonacci de vetores em C. O enunciado do problema é:

 

Escreva um algoritmo que receba n e devolva o n-ésimo termo da sequência de Fibonacci. Use vetores para poder mostrar qualquer termo da sequência.

Estratégia:

(1) Use três vetores para armazenar os termos da sequência. Cada posição do vetor deve armazenar um algarismo do número, ou seja, um número maior ou igual a zero e menor ou igual a 9.

(2) Calcule a soma de dois números armazenados em um vetor conforme (1).

(3) Use (2) para calcular o n-ésimo termo da sequência, dado pela fórmula de recorrência:

Fn=Fn−1+Fn−2,Fn=Fn−1+Fn−2,

para n>=3, sendo F1 = 1 e F2 = 1.

 

E meu programa é esse:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n, fn[11], fib[4], cont;
    
    scanf("%d", &n);
    
    fib[1] = 1;
    fib[2] = 1;
    fn[1] = 1;
    
    for(cont = 3; cont <= n; cont++)
    {
        fn[1] = fib[1] + fib[2];
        fib[1] = fib[2];
        fib[2] = fn[1];
    }
    printf("O valor da soma eh %d\n", fn[1]);
     
return 0;   
}

 

Porém, em alguns casos, o Fibonacci de alguns números saem errados, com um valor inesperado. 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Não sei dizer só olhando que você não acertou (^^)

Mas eu dividiria o problema em dois 4;

 

Imagem Ilustrativa

image.png.0e5cbb84744983b702ae1afb1550476b.png

 

A. Uma função para sequência que funciona para tipos inteiros. 

B. Um função que faz a adição dos números codificados no vetor.

C. Um função para imprimir os vetores.

D. Adaptaria a função de A. para funcionar com os vetores.

 

Na minha opinião principal função do problema é a B. Você entendeu o que ela faz?

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...