内容正文:
第二单元 算法的程序实现
《算法与程序设计》
课时31 枚举算法及其实现
考试内容 考试要求 历年真题索引
枚举算法及程序实现 c 2019年4月第17题
2018年4月第17题
2017年11月第16题
2017年11月第17题
2017年4月第17题
2016年10月第11题
2016年4月第16题、17题
一、枚举算法及程序实现
1.枚举算法的基本思想
枚举 就是将问题的可能解一个个地列举,逐一判断,即使中途找到符合的解也要继续找下去,将所有可能都找完才结束。
枚举
算法 又叫穷举算法,其基本思想是把问题所有的解一一地罗列出来,并对每一个可能解进行判断,以确定这个可能解是否是问题的真正解。若是,就采纳这个解,否则就抛弃它。
2.枚举算法的实现要点
①列举与检验过程既不重复也不遗漏;
②尽可能地使可能解的罗列范围最小,以提高解决问题的效率;
③用循环语句(For语句)在一定范围内列举所有可能的解;
④用选择语句(If语句)判断和选择真正的解。
3.枚举算法的一般格式
For 循环变量=初始 To 终值 Step 步长
If 检验表达式 Then
输出解或者计数器加1
End If
Next 循环变量
4.双重循环
某些枚举算法的问题比较复杂,需要通过复杂的双重循环来实现。双重循环就是循环的嵌套,在一层循环结构内部又是另一层循环,其结构如下所示。
此结构由两个For循环构成,外循环是循环变量为i的循环,内循环是循环变量为j的循环,这两个循环之间的关系是嵌套关系,循环变量为i的循环将循环变量为j的循环包含在内,在循环执行时,外循环变量i每变化一次,都要执行一次完整的内循环。
在枚举算法中,有很多时候用到循环的嵌套来解决问题。
For i=…
语句块
For j=…
语句块
Next j
Next i
5.循环嵌套
多重循环在使用时,每个循环必须只有一个唯一的变量名作为循环变量;在Next语句结束循环时,必须内循环先结束,不得出现互相交叉。
循环嵌套的层数没有具体限定,选考时的多重循环结构一般只要求到双重循环。
6.编写枚举算法的程序要注意两个要点:
①For循环的范围要尽可能的小,这决定可能解的范围是否已经尽可能的小;
②条件表达式必须要正确无误,这决定哪些解才是真正的解。
7.素数问题
素数 素数(质数)就是一个大