Ir ao conteúdo

C Série de Fibonacci em c


Ir à solução Resolvido por isrnick,

Posts recomendados

Postado

 Desejo ajuda para implementar um programa que seja capaz de produzir a série de Fibonacci utilizando a fórmula e conforme o exemplo abaixo: O programa deverá solicitar a digitação de um número inteiro N qualquer. Se o usuário digitar um número N menor que zero, o programa deve ser capaz de atribuir o valor zero a N neste caso. Não pode ser utilizado variáveis do tipo FLOAT ou DOUBLE. Desde já, agradeço.

 

image.png.327219bd8ee1b3b85138fef345761282.png

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main (void)
{
int n;
unsigned long long int i,f;
double fa ,fb;
printf (" Entre com o valor de n: ");
scanf ("%d" ,&n);
if(n <= 0)
{
printf ("Numero errado !\n");
return 1;
}
n - -;
system ("cls ");
printf ("\nA serie de Fibonacci \n");
printf ("\n- - - - - - - - - - - - - - - - - - - -\n");
printf ("\n");
for(i=0;i <= ( unsigned )n;i++)
{
fa = pow ((1+ sqrt (5) ) /2. ,i);
fb = pow ((1 - sqrt (5) ) /2. ,i);
f = ( double ) ((1./ sqrt (5)) *(fa -fb));
printf ("%lld \n",f);
}
return 0;
}

 

<>

 

Postado

Não entendi muito bem a sua questão. Temos que usar a formula dada, mas não node usar números com ponto flutuante (float e double)? Não vejo como, pois a raiz quadrada de 5 é irracional.

De todo modo, abaixo tem um exemplo de função que calcula a sequência Fibonnaci usando números inteiros.

void fibonnaci (int n)
{
    unsigned long a = 0, b = 1, c=0;
	for (int i = 0; i < n; i++)
    {
      c = (a + b);
      printf (" %u", c);
      a = b;
      b = c;
    }
           
}

 

  • Solução
Postado

Pelo que entendi basta usar essa fórmula para calcular o n-ésimo número da sequência de Fibonacci, e imprimir o resultado.

 

#include <stdio.h>
#include <math.h>

int main()
{
    int n, fn;
    
    printf("Deseja calcular qual numero Fibonnaci? ");
    scanf(" %d", &n);
    
    fn = (int) 1.0/sqrt(5.0) * (pow((1.0 + sqrt(5.0))/2.0, n) - pow((1.0 - sqrt(5.0))/2.0, n));
    
    printf("F(%d) = %d\n", n, fn);

    return 0;
}

 

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!