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