JS实现斐波那契数列的五种方式(小结)
更新时间:2020年09月09日 09:40:04 作者:一只菜鸟攻城狮啊
这篇文章主要介绍了JS实现斐波那契数列的五种方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
下面是五种实现斐波那契数列的方法
循环
function fibonacci(n){ var res1 = 1; var res2 = 1; var sum = res2; for(var i = 1;i < n;i ++){ sum = res1 + res2; res1 = res2; res2 = sum; } return sum; }
普通递归
function fibonacci (n) { if ( n <= 1 ) {return 1}; return fibonacci(n - 1) + fibonacci(n - 2); }
尾递归
function fibonacci(n, ac1=1,ac2=1){ if(n<=1){return ac2} return fibonacci(n-1, ac2, ac1 + ac2) } Generator 函数和for...of循环 // Generator 函数和for...of循环 function* fibonacci() { let [prev, curr] = [0, 1]; // foo(;;)相当于死循环 等于while(1) for (;;) { yield curr; [prev, curr] = [curr, prev + curr]; } } for (let n of fibonacci()) { if (n > 1000) break; console.log(n); }
闭包实现
const fibonacci = function(){ var mem = [0,1]; var f = function(n){ var res = mem[n]; if(typeof res !== 'number'){ mem[n] = f(n-1) + f(n-2); res = mem[n]; } return res; } return f; }();
到此这篇关于JS实现斐波那契数列的五种方式(小结)的文章就介绍到这了,更多相关JS 斐波那契数列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JS解决Date对象在IOS中的“大坑” 以及时间格式兼容问题
这篇文章主要介绍了JS解决Date对象在IOS中的“大坑” 以及时间格式兼容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10javascript实现unicode与ASCII相互转换的方法
这篇文章主要介绍了javascript实现unicode与ASCII相互转换的方法,涉及JavaScript字符串的遍历、正则匹配及编码转换相关技巧,需要的朋友可以参考下2015-12-12
最新评论