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 должны инициализировать свои индексные переменные; Ваш разрыв должен идти к коду ПОСЛЕ вложенных циклов.

Другие вопросы по тегам