第一章枚举
1.枚举的基本思想
基于逐个尝试答案的一种问题的求解策略
例题1:完美立方
形如a^3=b^3+c^3+d^3的等式被称为完美立方等式。例如12^3=6^3+8^3+10^3.编写一个程序,对任给的正整数N(N<=100)寻找所有的四元组(a,b,c,d)使得a^3=b^3+c^3+d^3,其中a,b,c,d大于1,小于等于N,且b<=c<=d。
输入
一个正整数N(N<=100)
输出
每行输出一个完美立方。输出格式为:
Cube=a,Triple=(a,b,c,d)
其中a,b,c,d所在位置分别用实际求出的四元组值带入。
解题思路
四重循环a,b,c,d,a最外层,d最里层。
a枚举类型[2,N] b[2,a-1] c[b,a-1] d[c,a-1]
#include<iostream>
using namespace std;
int main()
{
int N;
cin >> N;
for (int a = 2; a <= N; a++)
for (int b = 2; b < a; b++)
for (int c = b; c < a; c++)
for (int 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;
}
运行结果: