3.2枚举算法及程序实现(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
End Sub
枚举算法 (1)解决此问题的算法是_________________ 。 在程序注释①和注释②的前面,填入适当的语句或表达 式,把程序补充完整: (2)程序中注释①前画线处应填入 Step 13 ________________________________ 。 (3)程序中注释②前画线处应填入 b=(s Mod 100)\10 ________________________________ 。 注:该示例程序在素材文件夹下vb13文件夹中。
3.2枚举算法及程序实现(1)
1.枚举算法的基本思想 枚举,就是将问题的可能解一个个地列举,逐一判 断,即使中途找到符合的解也要继续找下去,将所有可 能都找完才结束。 枚举算法又叫穷举算法,其基本思想是把问题所有 的解一一地罗列出来,并对每一个可能解进行判断,以 确定这个可能解是否是问题的真正解。若是,就采纳这 个解,否则就抛弃它。
根据此算法画出流程图如下图所示:
请将流程图中空缺部分补上: (1)边框①处应填入 n Mod 3=2 And n Mod _______________________ 5=3 And n Mod 7=2? 。 ______________________ (2)边框②处应填入 n=n+1 _____________________ 。
7. 使用枚举算法找出200以内所有十位数字为6的所有正整数,并 统计正确解的个数。下图为解决该问题的流程图:
请将流程图中空缺的部分补充 完整: (1)边框①处应填入 (s\10) Mod 10=6? _________________________ 。 (2)边框②处应填入 _________________________ 。 s=s-1
4.用枚举算法求解“找出所有满足各位数字之和等于7的三位 数”时,在下列所列举的数值范围内,算法执行效率最高的是 ( D ) A.从0到999 B.从100到999 C.从100到700 D.从106到700
5.以下VB表达式中,能实现判断某数能同时被3和5整除的是 ( D ) A.x Mod 3 And x Mod 5=0 B.x Mod 3=0 And x Mod 5=0 C.x Mod 3<>0 Or x Mod 5=0 D.x Mod 3=0 And x Mod 5<>0
解决此问题的VB程序如下: Private Sub Command1_Click() Dim a As Integer, s As Long, b As Integer, i As Integer For i = 0 To 9999 __________________ ' ① s = 850000 + I If s Mod 33 = 0 Then a = s Mod 10 _____________________' ② If a = b Then List1.AddItem Str(s) End If End If Next i
8.陈丽的支付宝支付密码忘记了,她 急需在30分钟内完成货款的支付, 请用VB编程帮她找回密码。她零星 记得自己的支付密码信息: ①密码是6位数字,前面两位为85; ②最后两位数字相同; ③能被13和33整除。 程序界面如图所示,单击“帮助找回密码”按钮Command1后, 可能的密码显示在列表框List1中。
9. 小李设计一个求两数最大公约数的程序。程序运行如下 图所示。在文本框Text1和文本框Text2中分别输入两个 数,单击“计算”按钮Command1,在标签Label1中显 示出结果。
VB程序代码如下: Private Sub Command1_Click() Dim m As Integer Dim n As Integer Dim r As Integer m = Val(Text1.Text) n = Val(Text2.Text) r=① Label1.Caption = “两数最大公约数为:” + Str(r) End Sub Function fact(m As Integer, n As Integer) As Integer Dim i As Integer, max As Integer If m > n Then max = m Else max = n For i = max To 1 Step -1
2.下列问题适合使用枚举算法解决的是 A.计算本月需上交的电费 B.计算全班男同学的平均身高 C.查找100以内所有能被2和3整除的数 D.200米短跑比赛成绩排名
( C )Байду номын сангаас
3.用50元钱兑换面值为1元、2元、5元的纸币共25张。每种纸 币不少于1张,问有多少种兑换方案。求解这个问题,最适 合的算法是 ( C ) A.排序算法 B.递归算法 C.枚举算法 D.解析算法
2.枚举算法的实现要点 ①列举与检验过程既不重复也不遗漏; ②尽可能地使可能解的罗列范围最小,以提高解决问 题的效率; ③用循环语句(For语句)在一定范围内列举所有可能的 解; ④用选择语句(If语句)判断和选择真正的解。 3.枚举算法的一般格式 For 循环变量=初始 To 终值 Step 步长 If 检验表达式 Then 输出解或者计数器加1 End If Next 循环变量
本节的学习需掌握枚举算法的基本思想,掌握枚举 算法的程序实现方法。考查方式为选择题与填空题。
1.如果一个自然数恰好等于它的因子之和,这个数就称 为“完全数”。例如,6就是一个“完全数”,因为6 的因子为1、2、3,而6=1+2+3。设计一个算法找 出1000以内所有的“完全数”, 那么求解这个问题 主要用到的算法是 ( D ) A.递归算法 B.排序算法 C.解析算法 D.枚举算法
6. 在我国古代《孙子算经》中曾提出这样一个问题。原文是这样 的:“今有物,不知其数,三三数之,剩二;五五数之三,剩 三;七七数之;剩二;问物几何?” 试用枚举法来分析此题,得出如下的算法: ①设定寻找之数最大范围max ②设定数n的初始值为7 ③判断条件n<=max?,如果是,执行④,如果否,跳转到⑧ ④判断条件n Mod 3=2 And n Mod 5=3 And n Mod 7=2是否成 立 ⑤如果条件④成立,则输出n ⑥n=n+1 ⑦跳转3 ⑧结束
枚举算法 (1)解决此问题的算法是_________________ 。 在程序注释①和注释②的前面,填入适当的语句或表达 式,把程序补充完整: (2)程序中注释①前画线处应填入 Step 13 ________________________________ 。 (3)程序中注释②前画线处应填入 b=(s Mod 100)\10 ________________________________ 。 注:该示例程序在素材文件夹下vb13文件夹中。
3.2枚举算法及程序实现(1)
1.枚举算法的基本思想 枚举,就是将问题的可能解一个个地列举,逐一判 断,即使中途找到符合的解也要继续找下去,将所有可 能都找完才结束。 枚举算法又叫穷举算法,其基本思想是把问题所有 的解一一地罗列出来,并对每一个可能解进行判断,以 确定这个可能解是否是问题的真正解。若是,就采纳这 个解,否则就抛弃它。
根据此算法画出流程图如下图所示:
请将流程图中空缺部分补上: (1)边框①处应填入 n Mod 3=2 And n Mod _______________________ 5=3 And n Mod 7=2? 。 ______________________ (2)边框②处应填入 n=n+1 _____________________ 。
7. 使用枚举算法找出200以内所有十位数字为6的所有正整数,并 统计正确解的个数。下图为解决该问题的流程图:
请将流程图中空缺的部分补充 完整: (1)边框①处应填入 (s\10) Mod 10=6? _________________________ 。 (2)边框②处应填入 _________________________ 。 s=s-1
4.用枚举算法求解“找出所有满足各位数字之和等于7的三位 数”时,在下列所列举的数值范围内,算法执行效率最高的是 ( D ) A.从0到999 B.从100到999 C.从100到700 D.从106到700
5.以下VB表达式中,能实现判断某数能同时被3和5整除的是 ( D ) A.x Mod 3 And x Mod 5=0 B.x Mod 3=0 And x Mod 5=0 C.x Mod 3<>0 Or x Mod 5=0 D.x Mod 3=0 And x Mod 5<>0
解决此问题的VB程序如下: Private Sub Command1_Click() Dim a As Integer, s As Long, b As Integer, i As Integer For i = 0 To 9999 __________________ ' ① s = 850000 + I If s Mod 33 = 0 Then a = s Mod 10 _____________________' ② If a = b Then List1.AddItem Str(s) End If End If Next i
8.陈丽的支付宝支付密码忘记了,她 急需在30分钟内完成货款的支付, 请用VB编程帮她找回密码。她零星 记得自己的支付密码信息: ①密码是6位数字,前面两位为85; ②最后两位数字相同; ③能被13和33整除。 程序界面如图所示,单击“帮助找回密码”按钮Command1后, 可能的密码显示在列表框List1中。
9. 小李设计一个求两数最大公约数的程序。程序运行如下 图所示。在文本框Text1和文本框Text2中分别输入两个 数,单击“计算”按钮Command1,在标签Label1中显 示出结果。
VB程序代码如下: Private Sub Command1_Click() Dim m As Integer Dim n As Integer Dim r As Integer m = Val(Text1.Text) n = Val(Text2.Text) r=① Label1.Caption = “两数最大公约数为:” + Str(r) End Sub Function fact(m As Integer, n As Integer) As Integer Dim i As Integer, max As Integer If m > n Then max = m Else max = n For i = max To 1 Step -1
2.下列问题适合使用枚举算法解决的是 A.计算本月需上交的电费 B.计算全班男同学的平均身高 C.查找100以内所有能被2和3整除的数 D.200米短跑比赛成绩排名
( C )Байду номын сангаас
3.用50元钱兑换面值为1元、2元、5元的纸币共25张。每种纸 币不少于1张,问有多少种兑换方案。求解这个问题,最适 合的算法是 ( C ) A.排序算法 B.递归算法 C.枚举算法 D.解析算法
2.枚举算法的实现要点 ①列举与检验过程既不重复也不遗漏; ②尽可能地使可能解的罗列范围最小,以提高解决问 题的效率; ③用循环语句(For语句)在一定范围内列举所有可能的 解; ④用选择语句(If语句)判断和选择真正的解。 3.枚举算法的一般格式 For 循环变量=初始 To 终值 Step 步长 If 检验表达式 Then 输出解或者计数器加1 End If Next 循环变量
本节的学习需掌握枚举算法的基本思想,掌握枚举 算法的程序实现方法。考查方式为选择题与填空题。
1.如果一个自然数恰好等于它的因子之和,这个数就称 为“完全数”。例如,6就是一个“完全数”,因为6 的因子为1、2、3,而6=1+2+3。设计一个算法找 出1000以内所有的“完全数”, 那么求解这个问题 主要用到的算法是 ( D ) A.递归算法 B.排序算法 C.解析算法 D.枚举算法
6. 在我国古代《孙子算经》中曾提出这样一个问题。原文是这样 的:“今有物,不知其数,三三数之,剩二;五五数之三,剩 三;七七数之;剩二;问物几何?” 试用枚举法来分析此题,得出如下的算法: ①设定寻找之数最大范围max ②设定数n的初始值为7 ③判断条件n<=max?,如果是,执行④,如果否,跳转到⑧ ④判断条件n Mod 3=2 And n Mod 5=3 And n Mod 7=2是否成 立 ⑤如果条件④成立,则输出n ⑥n=n+1 ⑦跳转3 ⑧结束