Ir ao conteúdo

Posts recomendados

Postado

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;

}

Postado

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.

  • 2 anos depois...
Postado

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;

}

  • 8 anos depois...
Postado

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.

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!