手记

JS中关于斐波那契的实例

给一个正整数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];
}
0人推荐
随时随地看视频
慕课网APP