Project Euler JavaScript#2无法弄清楚如何打印总数

时间:2016-06-01 03:47:22

标签: javascript fibonacci

如果我把它放到codeacademy实验室,它会返回总和。但是,当我告诉它时,我无法弄清楚为什么它不会打印/记录/返回总数。

var a = 0,
 b = 1,
 f = 1,
 fibNums = [];
 sum = 0;


while (f < 4000000) {
    f = a + b;
    if ( f > 4000000 ) {
        break;
    } else {
        a = b;
        b = f;
        fibNums.push(f);
        i ++;
    }
}

for (i =0; i < fibNums.length; i++) {
    if (fibNums % 2 === 0) {
        sum += fibNums(i);
    }
}

1 个答案:

答案 0 :(得分:1)

您的代码中有多处错误。

您需要使用[]而不是()来访问数组元素。在你的情况下,sum总是0,因为你以错误的方式访问数组。

以下是工作代码:

&#13;
&#13;
var a = 0,
  b = 1,
  f = 1,
  fibNums = [];
sum = 0;


while (f < 4000000) {
  f = a + b;
  if (f > 4000000) {
    break;
  } else {
    a = b;
    b = f;
    fibNums.push(f);
   
  }
}

for (var i = 0; i < fibNums.length; i++) {
  if (fibNums[i] % 2 == 0) {   // access array elements using [] notation
    sum += fibNums[i]; // access array using []
  }
}

console.log(sum); // Log the sum
console.log(fibNums); //log the fibNums array
&#13;
&#13;
&#13;