Java secuencia recursiva de Fibonacci
Por favor explique este código simple:
public int fibonacci(int n) {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
Estoy confundido con la última línea, especialmente porque si n = 5, por ejemplo, se llamaría fibonacci (4) + fibonacci (3) y así sucesivamente, pero no entiendo cómo este algoritmo calcula el valor en el índice 5 por este método. ¡Por favor explique con muchos detalles!