我正在努力使这个循环工作。 for / while循环是返回Fibonacci序列中偶数之和的好方法吗?
function evenFib() {
var x, y, total;
for (var i = 0; i < 10; i++) {
if (i === 0) {
x = 1;
y = 2;
}
while( x %2===0) {
total = x + y;
x = y;
y = total;
}
return(total);
}
};
答案 0 :(得分:0)
function fibEven(){
var max = 50;
var cur = 1;
var last = 1;
var evens = 0;
for(var i = 1; i < max; i ++)
{
var tlast = i > 1 ? cur : last;
cur = cur + last;
last = tlast;
if(cur % 2 === 0)
{
evens += cur;
console.log(evens);
}
}
return evens;
}
我甚至不确定如何开始解释为什么你的尝试不起作用。所以基本上我们给这个范围,因为斐波那契是无限的。您将开始在大约100次迭代中获得疯狂的数字。一般规则是下一个数字是这个数字加上最后一个数字。使用模数来检查是否有余数。如果没有,请添加到总数中。运行此功能并查看。