B69
初识枚举:用循环逐一检验
引入
章前总览 第14章把分支和循环合在一起解题,并初步认识枚举(穷举):候选答案很多、又不好用公式直接排除时,就用循环一个个检查。
逻辑链条:
- C1:什么是枚举
- C2:生活例子——分五角星
- C3:程序里怎么写
1 C1. 枚举算法是什么
算法是用程序解题的步骤。有些步骤套路固定,就起了专门名字;枚举就是其中一种。
核心想法
- 问题可能有大量候选答案(或中间状态),又难以用逻辑直接砍掉大部分。
- 策略:逐一检验每一个候选。
- 数学里常叫列举法;编程里通俗说就是:用循环检查某个量的每一个取值。
2 C2. 例子:10 个五角星分 2 堆
每堆至少 2 个,两堆不区分。约定两堆数量 a≤b,避免重复。
列举
- 合法分法:2+8、3+7、4+6、5+5,共 4 种。
- 若再写 6+4、7+3、8+2,只是把两堆对调,算重复。
- 约定顺序(如 a≤b)是枚举时避免重复的常用手段。
3 C3. 程序里的枚举
一个量:一层 for/while;多个量的组合:多重循环(后面再学)。
骨架
for (候选值 从最小值 到 最大值) {
if (这个候选满足题意)
输出 或 计数++;
}
- 本章案例:找因数、面积对应长宽、美丽数字计数,都是“枚举 + 判断”。
小结
记住一句:
枚举 = 循环扫候选 + if 筛合法答案
注意约定顺序,避免重复计数
✓
里程碑达成:
下一节三个案例:找因数、长方形种数、美丽数字。