我制作了一个返回乘积 abc 的程序,其中 a、b、c 是毕达哥拉斯三元组,加起来等于 1000。该程序确实输出了正确答案,但它输出了两次。我很好奇为什么会这样。玩了一会儿之后,我发现它在 a = 200 b = 375 c = 425 时打印出来。当 a = 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;
}
最佳答案
只是为了它的值(value),我会写这个函数:
bool isPythagTriple(int a, int b, int c)
{
if( (a*a)+(b*b)-(c*c) == 0 )
return true;
else
return false;
}
更像这样:
bool isPythagTriple(int a, int b, int c) {
return a*a+b*b==c*c;
}
关于c++ - 为什么答案打印两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2800143/