js如何实现斐波那契

这篇文章给大家分享的是有关js如何实现斐波那契的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

目前创新互联已为1000多家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、峰峰矿网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

斐波那契

最简单的做法:递归。

function fibonacci(n){

 if (n <= 0) {

 return 0;

 }

 if (n == 0) {

 return 1;

 }

 return fibonacci(n-1) + fibonacci(n-2);

}

但是递归会有严重的效率问题。比如想要求得f(10),首先需要求f(9)和f(8)。同样,想求f(9),首先需要f(8)和f(7)…这样就有很多重复值,计算量也很大。

我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以在后台私信我:前端,即可免费获取。

改进:从下往上计算,首先根据f(0)和f(1)计算出f(2),再根据f(1)和f(2)计算出f(3)……以此类推就可以计算出第n项。时间复杂度O(n)。

function fibonacci(n){

 let ori = [0,1];

 if (n < 2) {

 return ori[n];

 };

 let fiboOne = 1,fiboTwo = 0,fiboSum = 0;

 for (let i = 2; i <= n; i++) {

 fiboSum = fiboOne + fiboTwo;

 fiboTwo = fiboOne;

 fiboOne = fiboSum;

 }

 return fiboSum;

}

console.log(fibonacci(5));

感谢各位的阅读!关于“js如何实现斐波那契”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网站题目:js如何实现斐波那契
转载来源:http://scyanting.com/article/iiehci.html