思路:不断缩小范围的去枚举。题目要求:b<=c<=d,所以在for循环里 a:2~N b:2~a c:b~a d:c~a
#include <iostream>
using namespace std;
int main()
{int N;int a, b, c, d;cin >> N;for (a = 2; a <= N;a++)for (b = 2; b < a; b++)for (c = b; c < a; c++)for (d = c; d < a; d++){if (a * a * a == b * b * b + c * c * c + d * d * d)cout << "Cube = " << a << ",Triple = (" << b<<","<<c<<","<< d<<")" << endl;}return 0;
}
输出样例: