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 斐波那契数列内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. .NET的基元类型包括什么及Unmanaged和Blittable类型详解2. docker 使用CMD或者ENTRYPOINT命令同时启动多个服务3. PHP ob缓存以及ob函数原理实例解析4. java编写一个花名随机抽取器的实现示例5. IntelliJ IDEA 下载安装超详细教程(推荐)6. python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例7. IntelliJ IDEA恢复删除文件的方法8. PHP 命名空间原理与用法详解9. SpringBoot + Vue 项目部署上线到Linux 服务器的教程详解10. Vue项目中如何封装axios(统一管理http请求)

网公网安备