枚举法单重循环到两重循环_第1页
枚举法单重循环到两重循环_第2页
枚举法单重循环到两重循环_第3页
枚举法单重循环到两重循环_第4页
枚举法单重循环到两重循环_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二讲枚举法〔单重循环到双重循环〕作业讲评:1、在1~1000这些自然数中找出所有能被3和5整除的数来。[文件名:找3和5的倍数]Fori=1to1000Ifimod3=0andimod5=0thenprintiendifnexti作业讲评:2、在1~1000这些自然数中找出所有被3除余2、被5除余3的数来。[文件名:找不同余数的解]

Fori=1to1000Ifimod3=2andimod5=3thenprintiendifnexti作业讲评:3.设n是一个四位数,它的9倍恰好是其反序数,求n。反序数就是将整数的数字倒过来形成的整数。例如1234的反序数是4321。[文件名:反序数]Forx=1000to9999a=int(x/1000)b=int(x/100)mod10c=int((xmod100)/10)d=xmod10if9*x=a+b*10+c*100+d*1000thenprintxendifnextx例题1:〔1〕有一张单据,上面有一个五位数17□72,有一个数字模糊不清,但是知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]提问1:请用已经学过的枚举法用自己的语言来描述一下如何解决这个问题。

解答:枚举法的解题思路:枚举17072、17172、17272。。。1797210个数〔循环次数〕17072mod23=0?如果能整除23的就输出答案,不能整除的不输出答案〔分支〕,然后继续下一个值的测试,17172mod23=0?……...直到17972mod23=0?为止〔循环〕提问2:〔1〕利用算法三种结构中的哪些结构来完成?解答:循环嵌套分支

〔2〕用i表示缺损的百位,假设这五位数为k,如何用i来表示k?解答:k=17072+i*100

〔3〕i的取值范围是多少?解答:i的取值范围[0,9]

例题1:〔1〕有一张单据,上面有一个五位数17□72,有一个数字模糊不清,但是知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]begin

①Printkend

i=0kmod23=0k=②F③FTT解答:①i<=9②17072+i*100

③i=i+1Fori=0to9k=17072+i*100

ifkmod23=0thenprintk

endifnexti例题1:〔1〕有一张单据,上面有一个五位数17□72,有一个数字模糊不清,但是知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]例题1:〔2〕那张单据,上面还是五位数,有两个数字模糊不清,17□□2,知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]提问:〔1〕利用算法三种结构中的哪些结构来完成?解答:循环嵌套分支

〔2〕用i表示缺损的十位和百位,假设这五位数为k,如何用i来表示k?解答:k=17002+i*10〔3〕i的取值范围是多少?解答:i的取值范围[0,99]

begin

①Printkend

i=0kmod23=0k=②F③FTT解答:①i<=99②17002+i*10

③i=i+1Fori=0to99k=17002+i*10

ifkmod23=0thenprintk

endifnexti例题1:〔2〕那张单据,上面还是五位数,有两个数字模糊不清,17□□2,知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]例题1:〔3〕那张单据,上面还是五位数,有两个数字模糊不清,但不是连续的是间隔的,1□7□2,知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]提问:〔1〕利用算法三种结构中的哪些结构来完成?解答:用循环嵌套分支,用单重循环不能解决,用双重循环来解决〔2〕用i表示缺损的千位,j表示十位,假设这五位数为k,如何用i和j来表示k?解答:k=10702+i*1000+j*10〔3〕i,j的取值范围是多少?解答:i的取值范围[0,9],j的取值范围[0,9]

双重循环枚举结构:Fori=初值to终值Forj=初值

to

终值

If判断条件then输出答案

EndifNextjNextiFori=0to9Forj=0to9k=10702+i*1000+

j*10

Ifkmod23=0then

printk

EndifNextjNexti

例题1:〔3〕那张单据,上面还是五位数,有两个数字模糊不清,但不是连续的是间隔的,1□7□2,知道该五位数能被23整除,找出所有满足条件的五位数。[文件名:单据数字推算]例题2:包装600个变形金刚,要求是:〔1〕包装的规格分别是:小盒每盒12个,大盒每盒15个。〔2〕每种规格的盒数都不能为0。请设计一个算法,输出所有可能的包装方案。[文件名:包装方案]解题思路:假设大盒、小盒的数量分别为i,j,那么可推导出15*i+12*j=600,根据每种规格的盒数都不能为0,得出i<=600/15-1;j<=600/12-1;只要满足这两个条件的i,j值,都是是符合要求的方案。此题可通过枚举的方法,通过多重循环,逐一的检验每一个可能的i,j值,最终得出所有可能的包装方案。例题2:包装600个变形金刚,要求是:〔1〕包装的规格分别是:小盒每盒12个,大盒每盒15个。〔2〕每种规格的盒数都不能为0。请设计一个算法,输出所有可能的包装方案。[文件名:包装方案]n=0Fori=1To600/15-1Forj=1To600/12-1Ifi*15+j*12=600ThenPrint"大盒:"+Str(i)+"小盒:"+Str(j)n=n+1EndIfNextjNexti

回家作业:1、在一个直角三角形中,三条边a、b、c的长度都是整数,假设一条直角边

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论