Sequência de Fibonacci recursiva Java
Por favor, explique este código simples:
public int fibonacci(int n) {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
Estou confuso com a última linha, especialmente porque se n = 5, por exemplo, então fibonacci (4) + fibonacci (3) seriam chamados e assim por diante, mas não entendo como esse algoritmo calcula o valor no índice 5 por este método. Por favor, explique com muitos detalhes!