Sequência de Fibonacci – Algoritmo C/C++

shape
shape
shape
shape
shape
shape
shape
shape

A sequência de Fibonacci é dada pela seguinte ordem [latex] Fibonacci = 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 . . .[/latex]. O algoritmo para o cálculo do enésimo elemento é dado por: [latex] N = N – 1 + N – 2 [/latex], ou seja, o enésimo elemento é igual à soma dos dois dois elementos anteriores a ele, por exemplo:

Dada a sequência de Fibonnaci [latex] 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55. . .[/latex] calcule o 3º elemento da sequência:

Sempre levamos em consideração o valor dos dois primeiros termos, tais que [latex]X = 0[/latex] (primeiro elemento) e [latex]Z = 1[/latex]. Então o terceiro elemento da sequência será igual à soma dos dois elementos anteriores, nesse caso [latex] N = X + Z [/latex], [latex]N = 0 + 1 [/latex], [latex]N = 1[/latex].

Progrma em linguagem C que calcula o enésimo termo da sequência de Fibonacci:

#include 

long int fibonacci(int n);
void main()
{
//Sequencia fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55..
    int n;
    printf ("Escolha a posicao: ");
    scanf("%d", &n);
    printf("Posicao %d da sequencia de fibonnaci: %d", n, fibonacci(n));
}

long fibonacci(int n)
{
    int cont;
    long int x = 0, z = 1;
    
    if(n % 2 == 0)
    {
        for(cont = 2; cont != n; cont = cont + 2)
        {
            x = x + z;
            z = x + z;
        }
        return z;
    }
    else
    {
        for(cont = 1; cont != n; cont = cont + 2)
        {
            x = x + z;
            z = x + z;
        }
            return x;
    }
}

9 Comments:

    1. #include
      #include
      #include

      int main(){
      int x, y,z;
      x=0;
      y=1;
      z=0;
      while(z<1000){
      printf("%i \n",z);
      z=x+y;
      x=y;
      y=z;

      }
      return 0;
      }

  1. //cara me ajuda ai, essa está impossível….

    //sequencia 15 29 56 108 208 400…

    #include
    #include

    int main (void)
    {
    int cont;
    int acum1;
    int acum2;
    int acum3;

    cont= 1;
    acum1= 15;
    acum2= 14;
    acum3= 1;

    while(cont<10)
    {
    acum1 = acum1+acum2;
    acum2 = acum2 – acum3;
    acum3 = acum3 * 2;
    printf("%d\n", acum1);
    printf("%d\n", acum3);
    cont=cont+1;
    }
    getchar;
    }

    1. Segue abaixo seu codigo amigo…..

      #include
      #include

      int main (void)
      {
      int cont;
      int acum1,acum2,acum3;
      int inv;

      cont= 1;
      acum1= 15;
      inv=1;
      printf(“%d\n”, acum1);
      while(cont<10)
      {

      acum3 = acum1 * 2 – inv;
      inv=inv*2;
      printf("%d\n", acum3);
      cont++;
      acum1=acum3;
      }
      getchar;
      }

  2. VELHO AJUDA AQUI É UM TRABALHO OLHA SÓ O QUE ESTÁ PEDINDO.
    1. O sistema deve ter dois perfis de acesso: administrador e aluno
    2. Inicialmente o sistema deve solicitar cadastro (nome e senha) do administrador. OBS: Essa solicitação só deve aparecer a primeira vez que o sistema for executado.
    3. Após o cadastro do Administrador o sistema deve ir para a tela de login inicial.
    4. O sistema deve ter um controle de acesso diferenciado entre Administrador e Aluno (conforme menus abaixo).
    5. Apenas o administrador pode cadastrar alunos.
    6. A tela de cadastro de alunos deve ter os seguintes campos para preenchimento: nome completo, RG, data de nascimento, nome de usuário e senha.
    7. A tela de cadastro de disciplinas deve ter os seguintes campos: nome da disciplina, carga horaria, pré-requisito, valor da disciplina, horário e dia da semana.
    8. A tela de inserção de notas tem como objetivo inserir as médias finais dos alunos. Deve-se solicitar o código do aluno e em seguida solicitar a nota de cada disciplina que o aluno está matriculado.
    9. A tela de analise curricular mostra todas as disciplinas já cursadas pelo aluno e sua média final.
    10. A tela de relatório de oferta de disciplinas deve mostrar todas as disciplinas e suas respectivas informações.
    11. Na tela matrícula Acadêmica, no caso de alunos veteranos, o usuário deve inserir manualmente os código das disciplinas que quer pegar, em seguida o sistema deve gerar o horário semanal. O sistema deve impedir matricula em disciplinas sem pré-requisito. No caso dos alunos calouros o sistema deve matriculá-lo automaticamente nas disciplinas do módulo 1. Após a confirmação de matrícula deve ser emitido um comprovante.
    12. A opção logoff deve retornar a tela de log inicial.
    TELA DE LOGIN INICIAL
    Nome:
    Senha:
    MENU ADMINISTRADOR
    1. Cadastro de Alunos
    2. Cadastro de disciplinas
    3. Inserção de notas
    4. Logoff

    MENU ALUNO
    1. Analise Curricular
    2. Relatório de oferta de disciplinas
    3. Matricula Academica
    4. Logoff

  3. olá eu tenho um trabalho para fazer sobre esse calculo só que diferente eu dou um numero e ele começa a partir deste numero to precisando de ajuda por favor !!!!!

  4. Ajudem a fazer esse codigo !!!!
    Mostrar a soma e a média dos 10 primeiros termos da série de Fibonacci: 0 1 1 2 3 5 8 …
    Inicio
    A=0
    B=1
    soma=1
    mostrar A,B
    Para I=3 até 10 faça
    inicio
    N=A+B
    mostrar N
    soma=soma+N
    A=B
    B=N
    Fim
    Mostrar “soma: “, soma
    Mostrar “media: “,soma/10
    fim

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *