我正在编写一个函数,它显示斐波那契数列中给定数字的值。然而,在遵循斐波那契算法的情况下,最后一个数字似乎不太正确。关于我做错了什么有什么线索吗?
const fibonacci = function(num) {
let fsec=[];
fsec[0]= 0;
fsec[1]= 1;
for(let i=2; i<=num; i++){
fsec[i]=fsec[i-2]+fsec[i-1];
fsec.push(i)
}
return fsec[fsec.length-1]
};
fibonacci(6)
发布于 2021-10-11 15:37:51
fsec.push(i)
是不必要的,在本例中就是问题所在。
const fibonacci = function(num) {
let fsec=[];
fsec[0]= 0;
fsec[1]= 1;
for(let i = 2; i <= num; i++){
fsec[i] = fsec[i-2] + fsec[i-1];
}
return fsec[fsec.length - 1]
};
console.log(fibonacci(6));
发布于 2021-10-11 15:22:31
在你的for循环中有两件事。i
应该小于num
,推送应该推送数字,而不是迭代器。
更改为以下内容:
for(let i=2; i<num; i++){
fsec[i]=fsec[i-2]+fsec[i-1];
fsec.push(fsec[i])
}
发布于 2021-10-11 15:27:29
使用以下代码:
const fibonacci = function(num) {
let fsec=[];
fsec[0]= 0;
fsec[1]= 1;
for(let i=2; i<num; i++){
fsec.push(fsec[i-2]+fsec[i-1])
}
// console.log(fsec)
// console.log(fsec[fsec.length-1])
return fsec[fsec.length-1]
};
fibonacci(6)
https://stackoverflow.com/questions/69528518
复制相似问题