继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JS中关于斐波那契的实例

lost_island3
关注TA
已关注
手记 52
粉丝 8
获赞 94

给一个正整数num,返回小于或等于num的斐波纳契奇数之和。

斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。

例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。

代码:

function fibs(n){
  var a=1,b=1;
  var tmp=0;
  var arr=[1,1];
  for(var i=3;i<=n;i++){
    tmp=b;
    b=a+b;
    arr.push(b);
    a=tmp;
  }//构造斐波那契数组

  var sum=0;
  for(var j=0;j<arr.length;j++){
    if(arr[j] % 2 !== 0){
      sum += arr[j];
    }
  }
  return [arr[arr.length - 1],sum];
}
function sumFibs(num) {
  var k=3;
  while(fibs(k)[0] <= num){
    k++;
  }

  return fibs(k-1)[1];
}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP