Ir ao conteúdo
  • Cadastre-se
Adrian Simon

C Algoritmo Fibonacci em linguagem c

Recommended Posts

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

Compartilhar este post


Link para o post
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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo exercício, alguma pergunta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×