2016-06-01 3 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' 루프에 하나의 오류가 있습니다.'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

@Hamms : 코드의 주석을 읽을 수 있습니다. –

+0

@AndrewL : 수정할 수 있으면 오류를 지적하십시오 –