我做了一个程序,返回产品a b c其中a,b,c是毕达哥拉斯三元组并加起来为1000.程序确实输出了正确的答案但是做了两次。我很好奇这是为什么。玩弄它之后有点我发现它打印出来当a = 200 B = 375 C = 425,并再次α= 375 B = 200 C = 425为什么打印出来的答案是两次?
bool isPythagTriple(int a, int b, int c);
int main()
{
for(int a = 1; a < 1000; a++)
{
for(int b = 1; b < 1000; b++)
{
for(int c = 1; c < 1000; c++)
{
if(((a+b+c)==1000) && isPythagTriple(a,b,c))
{
cout << a*b*c << " ";
break;
}
}
}
}
return 0;
}
bool isPythagTriple(int a, int b, int c)
{
if((a*a)+(b*b)-(c*c) == 0)
return true;
else
return false;
}
把你的代码到一个代码块,你缩进一切4个空格。 101010按钮可以帮你完成 - 粘贴代码,然后选择它并点击101010按钮。 – 2010-05-10 03:30:24
...将“蛮力”变成“蛮力”...;) – msw 2010-05-10 03:38:32
如果你的问题还没有通过清理你的代码和调整你的循环边界来解决,这实际上是一个非常好的地方被误解的“goto”声明的奇迹。如果不是针对这里提出的各种修复方法,那么突破多重嵌套循环是在像C或C++这样的语言中使用'goto'的好地方。 – 2010-05-10 06:03:08