下面是五种实现斐波那契数列的方法
循环
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,斐波那契数列
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“JS实现斐波那契数列的五种方式(小结)”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。