Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eliomar Ferreira

exercício com Fibonacci

Recommended Posts

Bom dia!!!

Caso alguém possa me ajudar....

Preciso entender este exercício:

 

1. Escreva um programa que imprima os N primeiros números da seqüência de Fibonacci, onde cada termo é obtido pela soma dos dois termos anteriores.

Exemplo: 1, 1, 2, 3, 5, 8, 13, ...

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai precisar de três variáveis, uma para armazenar o último número da sequência e seu anterior, o outro para armazenar a soma dos dois.

 

Faça isso dentro de uma estrutura de repetição.

 

Seria essa sua dúvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola bom dia... fiz assim mas não rodou..

int main(int argc, char *argv[]) {
   int a=1, b=1, c=0, n, i=0;
   printf("Digite um numero");
   scanf ("%d", & n);
   printf ("%d\n", "%d\n", a , b );
 
   for (i=0 ; i<(n-2) ; i++){
      printf ("%d" , c);
      a=b;
     b=c;
   }
   return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Não rodou" -> não informa nada sobre o problema que ocorreu.

Pode não ter rodado por erro em tempo de compilação (nesse caso, nem compilou). Pode não ter rodado por erro em tempo de execução. Pode não ter rodado porque o arquivo não tem permissão de execução...

 

O programa exibe comportamento incorreto nos seguintes cenários: n = 0; n = 1; n < 0.

E você não está somando os números.

 

#include <stdio.h>
#include <math.h>
 
int main(void) {
   int n;
   double binet_numerator, binet_denominator;
 
   printf("Informe um inteiro: ");
   scanf("%d", &n);
 
   if (n < 1) {
       printf("Número inválido (%d)!\n", n);
       return 1;
   }
 
   for(int i=1;i<=n;i++) {
      binet_numerator = pow(1 + sqrt(5), i) - pow(1 - sqrt(5), i);
      binet_denominator = pow(2, i) * sqrt(5);
      printf("%.0f%c", binet_numerator/binet_denominator, (i == n)? '\n': ' ');
   }
   return 0;
}

 

#include <stdio.h>
 
int main(void) {
   int n;
   int a,b,c;
 
   printf("Informe um inteiro: ");
   scanf("%d", &n);
 
   if (n < 1) {
       printf("Número inválido (%d)!\n", n);
       return 1;
   }
 
   a = b = 1;
   for(int i=1;i<=n;i++) {
      if (i == 1 || i == 2) {
         printf("1%c", (i == n)? '\n':' ');
     } else {
          printf("%d%c", a+b, (i == n)? '\n':' ');
          c = a+b;
          a = b;
          b = c;
      }
   return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.