function sumFibs(num) {
var sum = 0;
var fib = [1,1]; //初始化Fibonacci的前两个数,便于计算
var odd = []; //用于储存奇数
//求出小于等于num的Fibonacci的所有数
for(var i=2;i<=num;i++){
fib[i] = fib[i-2] + fib[i-1];
if(fib[i]>num){break;}
}
fib.pop();
//把上面求出的数组中的所有奇数找出来
for(var j=0;j<fib.length;j++){
if(fib[j]%2!==0){
odd.push(fib[j]);
}
}
//计算奇数数组之和
sum = odd.reduce((a,b)=>a+b);
return sum;
}
验算:
sumFibs(6666); //result: 7563
THE END.
网友评论