1. 程式人生 > >Sum All Odd Fibonacci Numbers-freecodecamp算法題目

Sum All Odd Fibonacci Numbers-freecodecamp算法題目

return com function .com 利用 number script () +=

Sum All Odd Fibonacci Numbers


1.要求

  • 給一個正整數num,返回小於或等於num的斐波納契奇數之和。
  • 斐波納契數列中的前幾個數字是 1、1、2、3、5 和 8,隨後的每一個數字都是前兩個數字之和。
  • 此題不能用遞歸來實現斐波納契數列。因為當num較大時,內存會溢出,推薦用數組來實現。

2.思路

  • 利用for循環得出斐波納契數前一百個數組成的數列arr
  • 用.filter()按順序提出arr中的所有奇數
  • 利用for循環計算小於或等於num的斐波納契奇數之和

3.代碼

function sumFibs(num) {
  var arr=[1,1];
  var sum=0;
  for (var i=2;i<100;i++){
    arr[i]=arr[i-2]+arr[i-1];
  }
  arr=arr.filter(function(val){
    return val%2 ===1;
  });
  for(var j=0;arr[j]<=num;j++){
    sum +=arr[j];
  }
  return sum;
}
sumFibs(3);

4.相關鏈接

  • http://www.cnblogs.com/meteoric_cry/archive/2010/11/29/1891241.html

Sum All Odd Fibonacci Numbers-freecodecamp算法題目