2016-10-17 16 views
0

問題說,只有一個三重存在其中: A + B + C = 1000和^ 2 + B^2 = C^2ProjectEuler 9:爲什麼這不起作用(Java)?

我試圖找到這個三重通過簡單的蠻力,但它每次返回a = 1000,b = 1000和c = 1000,我不明白爲什麼?

public class Euler9 
{ 

    static long Answer() 
    { 
     long a=1,b=1,c=1; 

     outer: 
     for(; a<1000; ++a) 
     { 
      for(; b<1000; ++b) 
      { 
       for(; c<1000 ; ++c) 
       { 
        if((a+b+c == 1000) && (a*a+b*b == c*c)) 
        break outer; 
       } 
      } 
     } 

     System.out.println(a+" + "+b+" + "+c+" = "+(a+b+c)); 
     return a*b*c; 
    } 

} 
+1

將'c'增加到1000後,它不會重置爲1,與'b'相同。所以你不要探索所有可能的組合。 – Henry

+0

謝謝@亨利 –

回答

0

您的for循環需要初始化它們的索引變量;你的break需要在嵌套循環後進入代碼。