Fibonacci

10 respostas
E

Estou tentando fazer a série Fibonacci em java porém não consigo acertar, quanto mais eu tento mais me distancio do resultado: 0,1,1,2,3,5,8 …

class Fibonacci {

public static void main (String[] args){

int x = 0;

for (x=0;x<10;x++){

System.out.println(valor +x);

x += x;

}

}

}

10 Respostas

Bird89du

cara você tem que fazer a soma dos dois anteriores que dá o resultado atual…

exemplo

0+1=1
1,1=2
2+1=3
3+2=5

e assim vai

lembre-se

o resultado atual é obtido com a soma dos dois anteriores

tente ai

depois poste novamente

flw

Ayanami

Com uma variável só dessa maneira vai ser difícil…

Para acertar a lógica, tente com três variáveis: anterior, atual e soma :wink:

Bird89du

resaltando o que o erich2008 está falando

tenha como boa prática usar variaveis e constantes com nome bem definido

assim quando seu programa estiver grande você não vai deixar de sabe o que cada variável significa

flw

abs

Jauns

exemplo 1

public class fibonacciSimples 
{
	public static void main(String[] args) 
	{		
		int anterior1,anterior2,proxima,tsequencia;

		anterior1=0;
		anterior2=1;
		for(int cont=2;cont<=100;cont++)
		{
			proxima=anterior1+anterior2;
			anterior1=anterior2;
			anterior2=proxima;

			System.out.print(proxima +" - ");                     
		}
	}
}

exemplo 2 com vetor

public class ffibonacciVetor 
{
	public static void main(String[] args) 
	{		
		int vetfibonacci[]=new int[30],ant1=0,ant2=1,proxima=0;

		for(int cont=0;cont<30;cont++)
		{
		proxima=ant1+ant2;
		ant1=ant2;
		ant2=proxima;
		 
		 vetfibonacci[cont]=proxima;
		}
		for(int cont=0;cont<30;cont++)

		System.out.print(vetfibonacci[cont]+" - ");		
	}
}
maquiavelbona

Só para apimentar: tente fazer um algoritmo que calcule o Fibonacci de um número sem ter que calcular todos os anteriores a ele.

Até!

Jauns
maquiavelbona:
Só para apimentar: tente fazer um algoritmo que calcule o Fibonacci de um número sem ter que calcular todos os anteriores a ele.

Até!

Opa... legal a ideia... ve se eh isso...

import java.util.Scanner;


public class fffibonacciLeitura 
{
	public static void main(String[] args) 
	{	
		Scanner scan = new Scanner(System.in);

		int anterior1,anterior2,proxima,tsequencia;

		anterior1=0;
		anterior2=1;
		
		System.out.println("informe anterior1");
		anterior1= scan.nextInt();
		scan.nextLine();
		
		System.out.println("informe anterior2");
		anterior2= scan.nextInt();
		scan.nextLine();
		
		System.out.println("informe o tamanho da sequencia");
		tsequencia= scan.nextInt();
		scan.nextLine();
		
		for(int cont=2;cont<=tsequencia;cont++)
		{
			proxima=anterior1+anterior2;
			anterior1=anterior2;
			anterior2=proxima;
	
				System.out.print(proxima+" - ");                     
		}
	}
}
maquiavelbona
Não. Na verdade você deu uma encurtada mas ainda precisa calcular N números anteriores para então chegar no que você quer. Vamos supor tal caso:

-Nem usuário e nem você sabem o valor de fibonacci(n) para n>1;

-Você não pode e nem quer ter que calcular todos os valores anteriores de fibonacci para um certo N que o usuário quer (  pensou ter que calcular fibonacci(100) dessa maneira? );

-O algoritmo tem que ser no máximo de complexidade linear;

Boa pesquisa!

T

olha justamente o q to vendo aqui
vi varias maneiras de fazer essa sequencia
uma com o while tb

int u=0, p=1, a = 0;
System.out.println(a);
System.out.println(p);
while(a<1000){
a= u + p ;
u = p ;
p = a ; 
System.out.println(a);}

aproveita uma duvida aqui no for
me perdi no teste de mesa por q nao entendi o for

int a=1;
for(int i=0;i<=100; ){      // o que significa qdo nao tem nada aki no for no ultimo termo ou no primeiro ou no meio mesmo?
System.out.println(i+",");
i+=a;
a= i - a;
Jauns

tilopolis:

aproveita uma duvida aqui no for
me perdi no teste de mesa por q nao entendi o for

int a=1; for(int i=0;i<=100; ){ // o que significa qdo nao tem nada aki no for no ultimo termo ou no primeiro ou no meio mesmo? System.out.println(i+","); i+=a; a= i - a;

Neste caso ai, ta incrementado apos o println… ele ta pegando o valor do contador, e so depois incrementa o mesmo…

T

ele incrementa o’ i’ implicitamente?

Criado 11 de dezembro de 2008
Ultima resposta 11 de dez. de 2008
Respostas 10
Participantes 6