[Resolvido] Ternary Operator com erro no método Fibonacci

3 respostas
olivercld

Oi tudo bem, descrevendo o problema, na apostila da f11, existe um exercício que fala para fazer o método fibonacci de forma que fique em um linha com, pesquisei antes so que agora quando imprimo ao invés de sair o 8 esta saindo 4, não entendi abaixo o código:

public static int calculaFibo(int fibo) {
		//modo ternário b = (a > 0) ? 1 : 2;  

		return (fibo <= 2) ? (fibo - 1) : (fibo -2 );
		
		// Antes 
		//if (fibo <= 2) {
		//	return 1;// se fibo for menor ou igual a 2 retorna 1
		//} else {
		//	return Fibonaci.calculaFibo(fibo - 1)
		//			+ Fibonaci.calculaFibo(fibo - 2);
			// formula finobacci, F(n-1) + F(n-2), sabendo que n e a posicao do
			// elemento dentro da sequencia
	//	}

	}

//Main
public static void main(String[] args) {
		Fibonaci testa = new Fibonaci();
		int i = testa.calculaFibo(6);// calcula ate a sexta posicao
		System.out.println(" Fibo = "+i);
		//ira imprimir o 8 ja que este e o 6 numero
	}

3 Respostas

fbl.lucas

Ta errado isso ai cara:

public static int calculaFibo(int fibo) {

		return (fibo <= 2) ? (1) : (calculaFibo(fibo - 1) + calculaFibo(fibo - 2));

	}

//Main
public static void main(String[] args) {
		Fibonaci testa = new Fibonaci();
		int i = testa.calculaFibo(6);// calcula ate a sexta posicao
		System.out.println(" Fibo = "+i);
	}
olivercld

valeu fbl.lucas obrigado.

fbl.lucas

Altera o titulo para “[Resolvido]”

Criado 22 de dezembro de 2011
Ultima resposta 23 de dez. de 2011
Respostas 3
Participantes 2