Ir ao conteúdo
  • Cadastre-se

Algoritmo em C - Seqüência de Fibonacci


dxxb

Posts recomendados

Enunciado da questão: Faça um algoritmo que mostre os “n” termos da seqüência de Fibonacci e calcule o número de ouro (a média da serie).

Minha dúvida:A parte inicial eu consegui resolver (vide abaixo), porém a parte de número de ouro está bem estranho... Por que pelo que eu li, este é a divisão de um um f da série pelo seu antecessor. Porém, a questão pede a média da série... Me surge a dúvida:

- A média da série dos números de ouros da sequencia; ou

- O número de ouro é a média aritmética da série (?);

Espero que os amigos consigam solucionar,

att.

#include <stdio.h>

#include <cstdlib>

#include <iostream>

int main()

{

int num, f1, f2, f3, cont;

do {

printf("Digite um numero:\n ");

scanf("%i", &num);

if(num<=0)

printf("Digite um numero positivo!!");

} while (num<=0);

printf("0 - 1 - \n");

f1=0;f2=1;

num=num-2;

for(cont=0;cont<=num;cont++) {

f3=f2+f1;

printf("%i - ",f3);

f1=f2;f2=f3;

}

Link para o comentário
Compartilhar em outros sites

http://www.google.com.br/search?q="numero+de+ouro"+fibonacci

"O número áureo é aproximado pela divisão do enésimo termo da Série de Fibonacci (1,1,2,3,5,8,13,21,34,55,89,..., na qual cada número é a soma dos dois números imediatamente anteriores na própria série) pelo termo anterior. Essa divisão converge para o número áureo conforme tomamos n cada vez maior."

http://pt.wikipedia.org/wiki/Proporção_áurea

Resumindo: É só ir dividindo sempre o termo atual pelo anterior.

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

SEQUENCIA FIBONACCI EM C++

OBS VARIAVEIS * num = numero de termos da sequencia

* ant = numero anterior da sequencia

* at = numero atual da sequencia

* pr = proximo numero da sequencia

#include <iostream>

using namespace std;

int main ()

{

int num, ant = 1, at = 1, pr;

cout << "Digite o numero de termos Fibonacci: ";

cin >> num;

for (int i = 1; i <= num; i++)

{

if (i == 1) cout << "0 ";

else if (i == 2 || i == 3) cout << "1 ";

else

{

pr = ant + at;

ant = at;

at = pr;

cout << " " << pr;

}

}

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 8 anos depois...

Por fins didáticos: Segue o mesmo exercício proposto em C.

 

main()
{
    int num=0, i, atual=1, ante=1, prox=0;
    float total=0;
    while(num<=0)
    {
        printf("Digite a qtde de termos maior que 0: ");
        scanf("%d", &num);
    }
    for(i=0;i<num;i++)
    {
        if(i==0)
        {
            printf("0, ");
        }else if(i==1 || i==2)
        {
            printf("1, ");
            total=total+1;
        }else
        {
            prox=ante+atual;
            ante=atual;
            atual=prox;
            printf("%i, ",prox);
            total=total+atual;
        }
    }
    printf("\nA media eh: %.2f", total/i);
}

Acredito que o problema foi resolvido.

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!