可以枚举a,b,c三个因子,也可以枚举a,b,通过a,b求出c,这样更快一点:
#include<bits/stdc++.h>
using namespace std;
int main()
{
for (int a = 1; a * a < 1000; a++)
{
for (int b = 1; a * a + b * b < 1000; b++)
{
int c = sqrt(1000 - a * a - b * b); //不去枚举c,而通过计算的方式求出c,减少运算量
if (a * a + b * b + c * c == 1000)
{
cout << a << " " << b << " " << c << endl;
}
}
}
return 0;
}
题目给的一个解是:6 8 30,还有一组解就是10,18,24。
答案就是10.