ProjectEuler 9: почему это не работает ( Java)?
Проблема говорит, что существует только один триплет, для которого: a+b+c=1000 и a^2 + b^2 = c^2
Я пытаюсь найти этот триплет простой грубой силой, но он возвращается каждый раз, когда 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 ответ
Ваши циклы for должны инициализировать свои индексные переменные; Ваш разрыв должен идти к коду ПОСЛЕ вложенных циклов.