[RESOLVIDO] Metódo recursivo de fibonacci sem laços

8 respostas
Onimatsu
E ai! Blz! Estou com problemas para resolver um dos desafios do fj11 da caelum O exercício é o seguinte criar um método calculaFibonacci que não pode ter nenhum laço, só pode chamar ele mesmo como método. Então eu tenho:
Fibonacci fibo = new Fibonacci();
int i = fibo.calculaFibonacci(6);
System.out.println(i);
Isso imprime o número 8 que o sexto da ordem: 1,1,2,3,5,8. Esse programa trabalha com duas classes esse código em cima e a parte que o exercício me mostra até aí é o da apostila. O ruim é que sou iniciante é díficil controlar sem laço nenhum e o código que eu fiz não funcionou e a recursividade sem dúvida é um problema mas queria dicas para melhorar aí embaixo foi o metódo que eu tentei fazer:
public class Fibonacci {
	
	/** METÓDO **/
	void calculaFibonacci(int i){
		int anterior = 0;
		int atual = 1;
		
		if (anterior < atual){
			anterior = anterior + atual;
		}
		
		if (atual == anterior){
			atual = anterior + atual;
		}
		if (anterior == i){
			// Têm que executar até que fique na posição 6 mais não sei o que fazer aqui!
		}
	}
}
O raciocinio não foi dos melhores mas talvez não esteja tudo errado

8 Respostas

ViniGodoy

http://www.guj.com.br/posts/list/57712.java#303559

Onimatsu

Vini obrigado o código que você fez sem dúvida resolveu o problema as duas classes estão trabalhando em harmônia.
Mas sem querer abusar da sua paciência teria como você postar o código em portugol visualg eu tenho dificuldades em fazer o teste de mesa mesmo o código sendo simples e no momento estou treinando sem instrutor e o visual é o único que eu conheço que mostra o passo a passo.
Não me entenda mal tentei fazer no visualg mais estou mais acustumado com a linguagem java original do que com o portugol. O metódo que eu tentei é muito diferente do seu não basta eu ler o código tenho que ver o metodo recursivo em ação.

ViniGodoy

Não faço idéia do que seja portugol visualg.

M

Você está usando alguma IDE para programar em Java? Se estiver, elas tem o modo debug que permite fazer seu programa executar em um passo a passo para que você entenda o que está acontecendo.

De qualquer forma, o teste de mesa não é complicado…

Onimatsu

E ai Marco bom cara o debug eu tenho porque estou fazendo tudo no eclipse mais como eu disse eu sou iniciante e ele teria que me mostrar devagar e destacando o passo a passo não sei se ele faz isso de qualquer forma se ele fizer você não sabe de algum post que ensina a usar o debug

M

É meio antigo mas deve ajudar: http://hotwork.sourceforge.net/hotwork/manual/eclipse/eclipse-user-guide.html#Rodando_em_modo_Debug

marcelo.bellissimo

Não conheço tutoriais, mas é simples…

Voce “marca” a linha onde quer que o debug “pare” ao chegar, dando um duplo-clique na barra lateral esquerda, ao lado do código (aquela faixa cinza bem no canto)…

Inicie o seu projeto clicando nele com o botão direito, selecione “debug as” > “java application”… pronto, quando chegar na linha marcada vai parar…

Pra avançar para a próxima linha, aperte F5…
Pra entrar no método da linha atual, F6…
Pra continuar com a aplicação, F8 (vai parar no próximo ponto de debug, se houver… se for dentro de um laço ele para também caso exista um ponto de debug naquele laço)…

Não tem segredo… e vai abrir na lateral direita, uma aba chamada “Variables” onde você pode verificar o valor das variáveis… caso não apareça você pode exibi-la através do menu “Window” > “Show View” > "Variables… se não estiver ai, clique em “Other” e escolha ela… ou você seleciona a variável que quer ver, e aperta Ctrl+Shift+I (é o atalho pro “Inspect”…

Onimatsu

Valeu galera fiz alguns testes com o modo em debug e foi muito eficiente. Estou gostando muito do fórum obrigado a todos pelas respostas espero aprender muito por aqui.

Criado 12 de dezembro de 2010
Ultima resposta 15 de dez. de 2010
Respostas 8
Participantes 4