栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JS实现斐波那契数列的五种方式(小结)

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 斐波那契数列内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/68687.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号