Recursividade em Java

1 resposta
java
Rahmon_Marcossi

Primeiramente boa noite.
Venho lendo a respeito de java a pouco tempo e hoje dei uma olhada na parte de recursividade.

O código abaixo funciona 100%, mas gostaria de ver a opinião de vocês, gostaria de saber se há uma forma mais inteligente de chamar ou criar esses métodos de forma recursiva.

Venho estudando também com base em uma apostila da caelum, e em um dos exercícios ele pede o seguinte: “Escreva o método recursivo novamente, usando apenas uma linha. Para isso, pesquise sobre o operador condicional ternário. (ternary operator)”

Já dei uma olhada a respeito do operador tenário, mas ainda não consegui fazer esse exercício, como exatamente seria a sintaxe para a criação deste método apenas em uma linha? Este método não precisa imprimir a sequencia Fibonacci, mas sim apenas calcular.

public class Fibonacci {

public static void main(String[] args){

	int vetorFibo[] = new int [10];
	calcularFibo(1, 1, (vetorFibo.length-1), vetorFibo, 0);
	imprimirFibo(0, (vetorFibo.length-1), vetorFibo);
}//Fim do método main

public static void calcularFibo(int num1, int num2, int limite, int vetorFibonacci[], int vetorIndex){
	if(limite >= 0){
		int next = 0;
		next = num1 + num2;
		vetorFibonacci[vetorIndex] = next;
		calcularFibo(num2, next, (limite-1), vetorFibonacci, (vetorIndex+1));
	}// fim do if
	
}// fim do método calcularFibo

public static void imprimirFibo(int printIndex, int lastIndex, int vetor[]){
	if(printIndex <= lastIndex){
		System.out.printf("%d, ", vetor[printIndex]);
		imprimirFibo((printIndex+1), lastIndex, vetor);
	}// fim do if
	
}// fim do método imprimirFibo

}

1 Resposta

rmendes08

Para escrever uma função recursiva, antes você precisa entender como expressar uma função em termos de recorrência, ou ainda, como expressar uma função em termos dela mesma. Geralmente elas são expressas em termos de um caso base e em termos de um valor anterior, por exemplo, o fatorial de um número n, ou o n-ésimo fatorial é dado por:

fatorial(0) = 1 fatorial(n) = fatorial(n-1)

no caso do fibonnaci a recorrência é :

fibonacci(1) = 1 fibonacci(2) = 1 fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)

Criado 12 de julho de 2016
Ultima resposta 13 de jul. de 2016
Respostas 1
Participantes 2