如何在Fibonacci序列中返回偶数的和?

时间:2014-03-03 18:35:50

标签: javascript

我正在努力使这个循环工作。 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);
  }
};

1 个答案:

答案 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次迭代中获得疯狂的数字。一般规则是下一个数字是这个数字加上最后一个数字。使用模数来检查是否有余数。如果没有,请添加到总数中。运行此功能并查看。