Ir ao conteúdo
  • Cadastre-se
nicholas fernando

Sequencia de fibonacci

Recommended Posts

boa tarde,

estou fazendo um programa que imprima os 100 primeiros números da sequencia de fibonacci.

A partir do 23º numero o programa começa a imprimir números errados.

O  que eu faço?

------------------------------------------------------------------

#include<stdio.h>

#include<stdlib.h>

int main()

{

 int i=0, nro1=0, nro2=1, soma;

for( i=1; i<=100; i++)

{
printf("%d,nro1);

soma=nro1+nro2;

nro1=nro2;

nro2=soma;

}

printf("\n\n");

system("pause");

return 0;

}

 

----------------------------------------------------------

obrigado a todos

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que você precise de uma variável que suporte números maiores, como o long int  ou long long int. Eu não estou afirmando pois não testei.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, MassakiMsk disse:

Acredito que você precise de uma variável que suporte números maiores, como o long int  ou long long int. Eu não estou afirmando pois não testei.

eu testei usando essa duas variáveis também, porém não mudou nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora do printf você fez %lld?

adicionado 5 minutos depois

Testei aqui e deu certo. Porém com long long int chega só até o elemento 92. Não sei se tem como passar disso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

Tente declara a variável assim:

///~ C code
#include <stdio.h>
int main( void )
{
  unsigned long long int llVal = (unsigned long long int)-1;
  printf( "My Long long Integer size: %llu\n", llVal );
  return( 0 );
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mauro Britivaldo

1 hora atrás, Mauro Britivaldo disse:

Boa Tarde,

Tente declara a variável assim:


///~ C code
#include <stdio.h>
int main( void )
{
  unsigned long long int llVal = (unsigned long long int)-1;
  printf( "My Long long Integer size: %llu\n", llVal );
  return( 0 );
}

 

Testei desse modo, e mesmo assim não deu certo

adicionado 1 minuto depois
1 hora atrás, Mauro Britivaldo disse:

Boa Tarde,

Tente declara a variável assim:


///~ C code
#include <stdio.h>
int main( void )
{
  unsigned long long int llVal = (unsigned long long int)-1;
  printf( "My Long long Integer size: %llu\n", llVal );
  return( 0 );
}

 

 

2 horas atrás, MassakiMsk disse:

Na hora do printf você fez %lld?

adicionado 5 minutos depois

Testei aqui e deu certo. Porém com long long int chega só até o elemento 92. Não sei se tem como passar disso.

desse jeito no meu foi até o 46º elemento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu sistema é 64bits

#include<stdio.h>
#include<stdlib.h>
int main()
{
  unsigned long long int i=0, nro1=0, nro2=1, soma;
  for( i=1; i<=100; i++)
      {
          printf("\rnro1: %llu i: %llu", nro1, i );
                 soma=nro1+nro2;
                 nro1=nro2;
                 nro2=soma;
             }
                 printf("\n\n");
                 system("pause");
                 return 0;
             }

 

Mauro_Britivaldo_PrnScrn.png

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, Mauro Britivaldo disse:

Meu sistema é 64bits


#include<stdio.h>
#include<stdlib.h>
int main()
{
  unsigned long long int i=0, nro1=0, nro2=1, soma;
  for( i=1; i<=100; i++)
      {
          printf("\rnro1: %llu i: %llu", nro1, i );
                 soma=nro1+nro2;
                 nro1=nro2;
                 nro2=soma;
             }
                 printf("\n\n");
                 system("pause");
                 return 0;
             }

 

Mauro_Britivaldo_PrnScrn.png

o meu sistema é 32 bits, será que é por isso que não está funcionando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é por isso!

adicionado 0 minutos depois

é sim :D

adicionado 3 minutos depois

Saiba mais neste link: Microsoft Developer :: Intervalo de tipos 32bits VS 64bits

Compartilhar este post


Link para o post
Compartilhar em outros sites
44 minutos atrás, Mauro Britivaldo disse:

Se é por isso!

adicionado 0 minutos depois

é sim :D

adicionado 3 minutos depois

Saiba mais neste link: Microsoft Developer :: Intervalo de tipos 32bits VS 64bits

putzzz, valeu cara

então se eu compilar num de 64 bits ele irá funcionar?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

De nada, 

Se apenas Copilar e Rodar exclusivamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkkk Eu não entendi a sua pergunta, estava tarde...

Fato é que a magnitude que se tem na centésima posição de Sequência de Fibonacci é grande:

Saiba mais pesquisando por: inttypes.h

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×