c++ - 为什么答案打印两次?

标签 c++

我制作了一个返回乘积 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/

相关文章:

c++ - 地址问题!

c++ - 如何在 C++ 中创建 DEBUG 函数,例如 C# 中的 ConditionalAttribute

c++ - ROS actionServer 作为 nodelet

c++ - MSVC 2010 中的 isnan() 在哪里?

C++/CLI 将位图转换为 OpenCV Mat

android - 有什么简单的方法可以直接在我的 android 应用程序上使用 c/c++ 源代码吗?

c++ - OpenCV 3.0 中的主动轮廓模型

c++ - 实体组件架构 : want to split big entity -> hard to refactor

c++ - 使用 cin.get() 读取字符

c++ - 命名空间是否连接到特定的库?