【发布时间】:2016-10-17 07:01:51
【问题描述】:
问题说只有一个三元组存在: 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;
}
}
【问题讨论】:
-
c增加到 1000 后,它永远不会重置为 1,与b相同。因此,您不必探索所有可能的组合。