Сначала вы должны были объявить переменную fib
как массив (например, var fib = []
или var fib = new Array()
), и я думаю, вы немного запутались в алгоритме.
Если выиспользуйте массив для хранения последовательности Фибоначчи, вам не нужны другие вспомогательные переменные (x,y,z
):
var fib = [0, 1];
for(var i=fib.length; i<10; i++) {
fib[i] = fib[i-2] + fib[i-1];
}
console.log(fib);
Вы должнырассмотрим рекурсивный метод (обратите внимание, что это оптимизированная версия):
function fib(n, undefined){
if(fib.cache[n] === undefined){
fib.cache[n] = fib(n-1) + fib(n-2);
}
return fib.cache[n];
}
fib.cache = [0, 1, 1];
, а затем, после вызова функции Фибоначчи, у вас есть вся последовательность в поле fib.cache
:
fib(1000);
console.log(fib.cache);