在这道题目中,我们需要写一个函数,参数为一个正整数 num
,返回值为斐波那契数列中,小于或等于 num
的奇数之和。
斐波那契数列中,第一和第二个数字都是 1。 后面的每个数字由之前两数相加得出。 斐波那契数列的前六个数字分别为:1、1、2、3、5、8。
比如,sumFibs(10)
应该返回 10
。 因为斐波那契数列中,比 10
小的数字只有 1、1、3、5。
function sumFibs(num) {
var pre = 0;
var cur = 1;
var arr=[];
while (cur <= num) {
if (cur % 2 !== 0) {
arr.push(cur);
}
cur += pre;
pre = cur - pre;
}
return arr.reduce((x,y)=>x+y);
}
sumFibs(4);