2016-06-01 5 views
0

これをcodeacademyラボに配置すると、合計が返されます。しかし、私がそれを伝えるときになぜそれがプリント/ログ/トータルを返さないのかわかりません。Project Euler JavaScript#2合計を印刷する方法がわかりません

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); 
    } 
} 
+2

どのように合計を返す/ログ/印刷しようとしていますか? – Hamms

+0

'while'ループに1つのエラーがあります。' i ++ 'は' i'と '++'の間にスペースを入れません。印刷/ログ/返品したいものは何ですか? –

答えて

1

コードにいくつかの誤りがあります。

[]ではなく()を使用して配列要素にアクセスする必要があります。あなたのケースでは、あなたが間違った方法で配列にアクセスしているので、合計は常に0です。ここで

作業コードです:

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

+0

あなたが行った変更となぜそれらを作ったのかを説明してください。 – Hamms

+0

@ハムス:コード内のコメントを読むことができます。 –

+0

@AndrewL:訂正できるようにエラーがある場合は指摘してください –

関連する問題