枚算法.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
枚算法

上次作业 流程图: VB代码: Dim w as long Dim p as double w=val(text1.text) If w= 0 then p=1.33*w+1.08*w*0.9 p=round(p,2) text2.text=str(p) Else text2.text=“用水量不能为负数” End if 枚 举 算 法 枚举算法 1.定义:P22 有一类问题可以采用一种盲目的搜索方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不合要求,保留那些符和要求,这种方法叫做枚举算法。 2.思想方法: 按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能的解是否是问题的真正解,若是,则采纳这个解,否则抛弃它。在列举的过程中,既不能遗漏,也不能重复。 应用枚举算法 问题1:找出1~1000中所有能被7 和11整除的数。 应用枚举算法 问题2:一张单据上有一个5位数的号码,它的十位和个位数字已被涂抹的看不清,但知道这个5位数是37的倍数,设计一个算法,找出该单据可能的号码。 应用枚举算法 问题3:对上题进行修改,这个5位数的千位和百位模糊不清,是37的倍数,设计一个算法,找出该单据可能的号码。 归纳小结 1)枚举算法的思想 2)实现方法:循环嵌套分支 2)适用情况(可能解的个数不太多时) 作 业 问题1:求水仙花数。若一个三位数,它的各位上的数字的立方 和等于它本身,则称该数为水仙花数。要求设计一个算 法输出所有的水仙花数。例如:13+53+33=153 (难度:★★) 问题2:有一单据上有一个5位数,其千位和十位上的数字看不 清,但知道这个5位数是37的倍数,请设计一个算法, 找出该单据可能的号码。1*2*8 (难度:★★★) 问题3:包装600个变形金刚,要求是: 1)包装的规格分别是:小盒每盒装12个,大盒每盒装15个 2)每种规格的盒数都不能为0 请设计一个算法,输出所有可能的包装方案。 (难度: ★★★★) * 开始 结束 输入用水量w w=0? N Y 显示:“用水量不能为负数” P=1.33*w+1.08*w*0.9 对p小数部分保留两位小数 输出p 一 一列举出所有可能的解 (列举范围) 检验每个可能的解是否是真正的解 (检验条件) 循环结构 (重复模式) 分支结构 (选择模式) 分析: 列举范围:i:[1,1000] 检验条件:i能被7和11整除 将流程图补充完整: 开始 i = 1 Y Y N N 输出 i i = i+1 结束 将VB程序代码补充完整: Dim i as integer i=1 i=1000? i mod 7=0and i mod11=0? 分析: 列举范围:n:[12800,12899] 检验条件:n是37的倍数 NO.128** 将流程图补充完整: 开始 结束 输出n n=12800 将VB程序代码补充完整: Dim n as integer n=12800 Y Y N N n=12899? n mod 37=0? n = n+1 分析: 列举范围:n:[10028,19928] 检验条件:n是37的倍数 NO.1**28 将流程图补充完整: 开始 结束 输出n n=10028 将VB程序代码补充完整: Dim n as integer n=10028 Y Y N N n =19928? n mod 37=0? n =n+100 将流程图补充完整: 开始 结束 输出n j = 0 Y Y N N n mod 37 =0? 将VB程序代码补充完整: Dim j as integer, Dim n as integer j=0 If n mod 37=0 then print n j =99? n =10028+j*100 j=j+1 1、以下运用枚举算法,“求1~1000的偶数”的算法,正确的是: 开始 结束

文档评论(0)

181****9125 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档