Возможно, это не самая сложная проблема, но мне это интересно. Я сделал простой код, чтобы получить значение Фибоначчи на основе пользовательского ввода без рекурсии, и он работает нормально. Очень простой код:
function fib(n) {
let fibArray = [0,1];
let count = 0;
while(fibArray.length <= n){
let previous = fibArray[count + 1];
let beforePrevious = fibArray[count];
fibArray.push(beforePrevious + previous);
count++;
}
return fibArray[n];
}
Но в тот момент, когда я попытался сделать это как рекурсивную функцию, результат не определен, даже если значение не равно.
function fib(n, count = 0, fibArray = [0,1]){
if(fibArray.length - 1 === n){
return fibArray[n];
}
if (fibArray.length <= n ) {
let previous = fibArray[count + 1];
let beforePrevious = fibArray[count];
fibArray.push(beforePrevious + previous);
count++;
}
fib(n,count, fibArray);
}