Пожалуйста, объясните этот простой код:
public int fibonacci(int n) {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
Я смущен последней строкой, особенно потому, что если n = 5, например, будет вызываться fibonacci (4) + fibonacci (3) и так далее, но я не понимаю, как этот алгоритм вычисляет значение в индексе 5 этим метод. Пожалуйста, объясните с большим количеством деталей!