0
Проблема говорит, что только один триплет существует, для которых: а + Ь + с = 1000 и^2 + Ь^2 = с^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;
}
}
После того, как вы увеличили 'c' до 1000, он никогда не будет сброшен до 1, то же самое с' b'. Поэтому вы не изучаете все возможные комбинации. – Henry
Спасибо @Henry –