题目
给一个正整数num,返回小于或等于num的斐波纳契奇数之和。
斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。
例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。
要求
sumFibs(1) 应该返回一个数字。
sumFibs(1000) 应该返回 1785。
sumFibs(4000000) 应该返回 4613732。
sumFibs(4) 应该返回 5。
sumFibs(75024) 应该返回 60696。
sumFibs(75025) 应该返回 135721。
代码
function sumFibs(num) {
var temp;
var before = 0;
var after = 1;
var arr = [];
while(after <= num){
if(after%2 === 1) {
arr.push(after);
}
temp = after;
after += before;
before = temp;
}
var total = arr.reduce(function(a,b) {
return a+b;
});
return total;
}
sumFibs(4);