1.24枚举算法(双重)汇编.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.24枚举算法(双重)汇编

有一类问题可以采用一种盲目的搜索方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不合要求的,保留那些合乎要求的结果,这种方法叫做枚举算法。 关键点: 注意点:既不能遗漏、也不应该重复 一一列举 、逐一检验 列举: 检验: 用重复模式实现 用选择模式实现 重复模式嵌套选择模式 结构: Y N 列举条件 一张单据上有一个5位数的编号,其千位数和百位数处已经变得模糊不清。但是知道这个5位数是57的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。 列举: 检验: 用 a 表示这个5位数,则 初值:10047 终值:19947 步长:100 a:5位数 c:个数 开始 c ← 0 a≤19947 Y a能被57整除 Y c ← c+1 a← a+100 N 结束 N 输出a 输出c a←10047 用 a 表示千位和百位上的数字,则 初值:0 终值:99 步长:1 a:填入的数字 n:5位数 c:个数 开始 c ← 0 a≤99 Y n ← 10047+a×100 n能被57整除 Y c ← c+1 a ← a+1 N 结束 N 输出n 输出c a← 0 a:5位数 c:个数 a:填入的数字 n:5位数 c:个数 开始 c ← 0 a≤19947 Y a能被57整除 Y c ← c+1 a← a+100 N 结束 N 输出a 输出c a←10047 开始 c ← 0 a≤99 Y n ← 10047+a×100 n能被57整除 Y c ← c+1 a ← a+1 N 结束 N 输出n 输出c a← 0 思 考 一张单据上有一个5位数的编号,其千位数和十位数处已经变得模糊不清。但是知道这个5位数是57的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。 列举: 检验: 双重循环的结构 Y N 条件e step Y N 条件e step 比较以下两个流程图有何不同? Y N x ←1 x ← x + 1 N y ← y + 1 y ← 0 Y x ≤ 2 y ≤ 2 循环控制变量 x:表示十位数字 Y N x ≤ 9 x ← 0 循环体 x ← x + 1 y:表示千位数字 y ← 0 y ≤ 9 y←y+1 初始值:0 终值:9 步长:1 初始值:0 终值:9 步长:1 五位数:n=10*x+1000*y+10407 Y N y ≤ 9 y ← 0 ; c ← 0 Y n ← 10407 + x * 10 + y * 1000 n mod 57=0 Y x ← x+1 y ← y+1 N 结束 N c ← c+1 输出c x ≤ 9 Y N 输出n 开始 x:十位数字 y:千位数字 n:5位数 c:个数 用10元和50元两种纸币组成240元,共有几种组合方式?试用枚举算法列出所有不同的取法。 练一练 古代数学《算经》中“百钱买百鸡问题”:公鸡每只5元,母鸡每只3元,小鸡1元3只,问100元买100只鸡,公鸡、母鸡、小鸡各多少只? 请用流程图描述用枚举法解决该问题的算法。 练一练

您可能关注的文档

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档