Problemas com Fibonacci

2 respostas
S

Boa a noite a todos, não estou conseguindo executar esse programa, alguem poderia me ajudar?
O exercício pede que a série de Fibonacci inicia com 0 e 1 e tem a propriedade de que cada número de
Fibonacci subseqüente é a soma dos dois números que o precedem. Escreva um
método implemente esta série de forma recursiva.
A série de Fibonacci pode ser definida recursivamente como segue:
fibonacci(0) = 0
fibonacci(1) = 1
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)

Estou encalhado exatamente aqui!

public int fibonacci(int n)

{

if(n == 0)

return 0; else

if(n == 1)

return 1; else

return fibonacci(n-1) + fibonacci(n-2);

2 Respostas

peczenyj

Qual o problema, parece correto:

public class Fib{

	public int fibonacci(int n)
	{
		if(n == 0)
			return 0;
		else if(n == 1)
			return 1;
		else
			return fibonacci(n-1) + fibonacci(n-2);
	}

	public static void main(String [] args){
		Fib f = new Fib();

		for(int i=0;i<10;i++)
			System.out.println(i + " " +f.fibonacci(i));
	}
}

ou de forma mais sucinta:

public class Fib{

	public static int fibonacci(int n)
	{
		return (n < 2) ? n : fibonacci(n-1) + fibonacci(n-2);
	}

	public static void main(String [] args){

		for(int i=0;i<10;i++)
			System.out.println(i + " " +Fib.fibonacci(i));
	}
}

Se bem que este algoritmo não é muito ineficiente. Se fizer testes com numeros muito grandes vais ter uma surpresa.

S

Muito obrigado!

Criado 11 de junho de 2006
Ultima resposta 11 de jun. de 2006
Respostas 2
Participantes 2