Aprendendo Java - Não entendo completamente como essa sequência é calculada (Fibonacci) [duplicado]
Esta pergunta já tem uma resposta aqui:
Sequência de Fibonacci recursiva em Java 35 respostasEstou aprendendo Java e tenho esse código da Internet e executando-o no Eclipse:
public class Fibonacci {
public static void main (String [] args) {
for (int counter = 0; counter <= 3; counter++){
System.out.printf("Fibonacci of %d is: %d\n", counter, fibonacci(counter));
}
public static long fibonacci(long number) {
if ((number == 0) || (number == 1))
return number;
else
return fibonacci(number - 1) + fibonacci(number - 2);
}
}
Eu tentei entender, mas não consigo. Então, eu corro o código ecounter
é passado através dofibonacci
método. Quando o contador começa às0
e é isso que passa primeiro, depois1
e eu entendo o método passa de volta0
e depois1
.
Quando atingir 2: vai voltar2-1 + 2-2 = 2
e retorna isso.
Quando atingir 3: vai voltar3-1 + 3-2 = 3
mas não retorna3
retorna2
.
Por favor, alguém pode me explicar por que, como não consigo descobrir isso?
obrigado