该程序的目标是使用欧几里得公式 (a = m^2 -n^2, b = 2mn, c = m^2 + n^) 找到小于 500 的每个值 (a, b, c) 的所有毕达哥拉斯三元组2.)所以这是我的代码。
int main()
{
clock_t start = clock()/ (CLOCKS_PER_SEC/1000);
for (int m = 1; m <= 500; m++)
{
for (int n = 1; n <= 500; n++)
{
int a = (m*m)-(n*n);
int b = 2*m*n;
int c = (m*m)+(n*n);
if (m > n && a + b == c)
{
cout << a << " + " << b << " = " << c << endl;
}
}
}
clock_t finish = clock()/ (CLOCKS_PER_SEC/1000);
cout << "completed in " <<clock() << " ms";
return 0;
}
我试过这个,我的输出什么都没有。我认为它的工作方式是:对于每个小于/等于 500 并从 1 开始的整数 m,每次将 m 加一。n 同样的交易。然后将这些值代入公式,如果 a+b == c,它会打印这些值,从而找到我的三元组。但我没有得到任何输出。