sum*_*mon 7 javascript fibonacci
function fib(n) {
const result = [0, 1];
for (var i = 2; i <= n; i++) {
const a = (i - 1);
const b = (i - 2);
result.push(a + b);
}
return result[n];
}
console.log(fib(8));Run Code Online (Sandbox Code Playgroud)
上面代码的输出是13。我不了解for循环部分。在第一次迭代中i = 2,但是在第二次迭代之后,i = 3所以a = 2又在b = 1第三次迭代之后,i = 4所以a = 3,b = 2等等
[0, 1, 1, 3, 5, 7, 9, 11]。正确的顺序将是[0, 1, 1, 2, 3, 5, 8, 13]
您没有使用数组中已有的前两个数字>生成要插入到数组中的新斐波那契数。
https://www.mathsisfun.com/numbers/fibonacci-sequence.html
在这里,我使用和的result[i-2]和result[i-1]来生成新的斐波那契数并将其推入数组。
另外,要生成n术语数量,您需要条件为i < nnot i <= n。
function fib(n) {
const result = [0, 1];
for (var i = 2; i < n; i++) {
result.push(result[i-2] + result[i-1]);
}
return result; // or result[n-1] if you want to get the nth term
}
console.log(fib(8)); Run Code Online (Sandbox Code Playgroud)
返回result[n-1]如果你想获得的第n项。
我对斐波那契数列的解决方案:
const fibonacci = n =>
[...Array(n)].reduce(
(acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i),
[]
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8489 次 |
| 最近记录: |