首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >fibonnaci序列javascript

fibonnaci序列javascript
EN

Stack Overflow用户
提问于 2021-10-11 15:10:34
回答 3查看 67关注 0票数 1

我正在编写一个函数,它显示斐波那契数列中给定数字的值。然而,在遵循斐波那契算法的情况下,最后一个数字似乎不太正确。关于我做错了什么有什么线索吗?

代码语言:javascript
运行
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-10-11 15:37:51

fsec.push(i)是不必要的,在本例中就是问题所在。

代码语言:javascript
运行
复制
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));

票数 0
EN

Stack Overflow用户

发布于 2021-10-11 15:22:31

在你的for循环中有两件事。i应该小于num,推送应该推送数字,而不是迭代器。

更改为以下内容:

代码语言:javascript
运行
复制
for(let i=2; i<num; i++){
 fsec[i]=fsec[i-2]+fsec[i-1];
 fsec.push(fsec[i])
}
票数 0
EN

Stack Overflow用户

发布于 2021-10-11 15:27:29

使用以下代码:

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69528518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档