我正在创建一个fibonacci生成器,该函数将在调用该函数时返回一个数组作为输出。例如,如果我调用函数“ fibonacciGenerator(3)”,则输出应为[0,1,1]的数组。运行代码时,我总是变得不确定。为什么我总是变得不确定?解决此问题的最佳方法是什么?
5
答案 0 :(得分:0)
您使用了错误的逻辑。将添加项推入数组,并且不为此创建新变量,删除条件错误的if语句,然后从2开始for loo
function fibonacciGenerator(n) {
//starting fibonacci array from 0 and 1
var fib = [0, 1];
for (var i = 2; i < n; i++)
//add the two preceding numbers to get sum. Fn = Fn-1 + Fn-2
fib.push(fib[i - 1] + fib[i - 2]);
}
//Return an array of fibonacci numbers.
return fib;
}
console.log(fibonacciGenerator(7));
答案 1 :(得分:0)
获取undefined
的原因是因为Fn
从未因为if(fib[i] === 2)
而被声明。您可以按照以下步骤进行操作。
[0,1]
n-2
次fib
push()
function fibonacciGenerator(n) {
//initializing the array to first two number of sequence
var fib = [0,1];
//Running loop n-2 times
for (var i = 0; i < n-2; i++) {
//Adding the sum of last two elements of the array to end of array.
fib.push(fib[fib.length - 1] + fib[fib.length - 2]);
}
return fib;
}
console.log(fibonacciGenerator(3));