2016-10-17 5 views
0

問題は1つのトリプレットは、そのために存在していることを述べている: A + B + C = 1000であり、a^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に増やした後、' b'と同じように1にリセットされることはありません。したがって、可能なすべての組み合わせを探索するわけではありません。 – Henry

+0

ありがとうございます@Henry –

答えて

0

forループはインデックス変数を初期化する必要があります。入れ子になったループの後でコードに移動する必要があります。

関連する問題