2013-12-15 2 views
-4

프로젝트 오일러에 Problem 14의 코드가 잘못 대답하고 있으며 무엇이 잘못되었는지를 볼 수 없습니다. 여기 내 코드가자바 : 프로젝트 오일러 # 14 오답 대답

public static void main(String[] args) { 
     long answer = 0; 
     long longest = 0; 
     for (long i = 0; i < 1000000; i++) { 
      long num = i; 
      long counter = 1; 
      while (num > 1) { 
       if (num % 2 == 0) num /= 2; 
       else num = 3 * num + 1; 
       counter++; 
      } 
      if (counter > answer) { 
       answer = i; 
       longest = counter; 
      } 
     } 
     System.out.println(answer); 
     System.out.println(longest); 
    } 
+3

디버거를 사용하십시오. –

+0

이클립스 디버거를 사용하고 오류가 없습니다. – usama8800

+1

프로그램이 제대로 작동하거나 오류가 있습니다. –

답변

2

당신은 체인을 생산하는 번호와 비교하고 있습니다.

if (counter > answer) { 
    answer = i; 
    longest = counter; 
} 

이되어야한다 :

if (counter > longest) { 
    answer = i; 
    longest = counter; 
}