打擂台算法教程.pptVIP

  1. 1、本文档共12页,可阅读全部内容。
  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文档。上传文档
查看更多
打擂台算法适用于: 求若干个数中的最大/小值 例题 找两数中的较大者 a=val(inputbox(请输入第一个数)) b=val(inputbox(请输入第二个数)) if a=b then max=a else max=b endif print max 双分支的写法 (非打擂台的算法) 例题 找两数中的较大者 输入a 输入b Max=a If b=max then max=b endif print max 单分支的写法 “打擂台”   因为事先不知道输入时的大小顺序,所以可以任意先假设其中一个为最大值,然后拿剩下的依次上去比较,max这个变量类似于“擂台”,始终保存每次比较后的最大值。   注意红色的这句话,写成b=a对不对? 推广 找三数中的最大值 输入a 输入b 输入c if b=max then max=b endif if c=max then max=c endif print max 单分支的写法 打两次擂台,比较两次。 推广 找多个数中的最大值 ( 循环 ) 不用数组的程序 Const n=5 n表示数据的多少,可改动 x=val(inputbox(请输入第一个数)) max=x 把第一个数设为最大值 for i=2 to n x=val(inputbox(依次输入后面的数)) if xmax then 从第二个开始依次比较 max=x endif next i print max 推广 找多个数中的最大值 ( 数组 不用排序) 使用数组的程序 Const n=5 n表示数据的多少,可改动 dim x(1 to n) as integer x(1)=val(inputbox(请输入第一个数)) max=x(1) 把第一个数设为最大值 for i=2 to n x(i)=val(inputbox(依次输入后面的数)) if x(i)max then 从第二个开始依次比较 max=x(i) endif next i print max 打擂台算法练习1   体育比赛打分 略 打擂台算法练习2   有N个绳子,准备用于系在重物上拎起。当拎起物体时,每个绳子的承重是一样的,同时每个绳子都有一个最大承重极限,超过极限就会断裂。   现在给定N个绳子的承重,请从里面挑选若干,保证每个绳子都不能断裂的前提下,计算出物体的最大重量。   例如:有3个绳子,最大承重分别是1,10,15,如果3个绳子全选,则最多只能举起重量为3的物体(所有绳子都不断裂);如果只选择15,物体最重为15;如果选择10和15这两根绳子,则最大可拎起重量为20的物体。 输入方式:   有N行,每行一个整数,表示第i个绳子的最大承重。 注:已经按照承重从小到大排好顺序 输出方式:   一个整数,表示物体的最大重量。 样例输入 对应输出 15 10 2 20 选择10和15这两个绳子,最大能举起重量为20的物体,这样所有的绳子都不会断裂。 10 4 1 10 只选第一个绳子 15 10 20 4 3 2 1 6 选择2, 3, 4,或者选择3, 4都可以,答案都是6。 已经排好顺序,从大到小。 选择第1个,a(i)*1 注:它后面的都不能选 选择第2个,a(i)*2 注:它前面的可以选,后面的不能选 选择第3个,a(i)*3 选择第4个,a(i)*4 即:a(i)*i 然后从这些方案中找一个最大的 如果从小到大排序呢? a(i)* …???... Const N=4 Dim a(1 to N)as integer 申明定义数组a For i=1 to N 输入 a(i)=val(inputbox(请输入)) Next i max=0 重量max初始化,不可能为负数 For i=1 to N if max…???... then 打擂台找最大值 ...???... endif Next i Print max 打印结果 注:运行前,请根据数据情况,改动第一行

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档