FCC----------- Sum All Odd Fibonacci Numbers

给一个正整数num,返回小于或等于num的斐波纳契奇数之和。

斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。


  • 例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。

提示:此题不能用递归来实现斐波纳契数列。因为当num较大时,内存会溢出,推荐用数组来实现。


这是一些对你有帮助的资源:

关于运算符操作的文档

Remainder

关于浏览器对于使用for循环内存占用过高崩溃解决方法

Issue


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function sumFibs(num) {
var fibo = [1, 1],
temp = 0,
sum = 2;
while(true){
temp = fibo[0] + fibo[1];
if(temp > num){
return sum;
}
if(temp % 2 !== 0){
sum += temp;
}
fibo[0] = fibo[1];
fibo[1] = temp;
}
}
sumFibs(4);