欢迎来到天天文库
浏览记录
ID:42981158
大小:293.31 KB
页数:8页
时间:2019-09-27
《用枚举法设计算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章用枚举法设计算法•一、学习目的:1、通过一个具体实例,理解什么是穷举法2、如何利用穷举法解决问题3、了解计数器的用法就是按照问题的本身的性质,通过多重循环,一一列出问题所有可能的解,然后检验每个可能的解是否是问题的真正解,若是,采纳(输出)这个解,否则放弃它。这种解决问题的算法•枚举法(也叫穷举算法):当且仅当问题可能的解不太多时,才能用穷举法1.问题一张标签上有一个5位数的编号,其千位数和百位数处已经变得模糊不清,如右图。但知道这个5位数是57或67的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。一个实例复原一份数字被涂抹的单据的
2、算法•NO:1??47其真正解n:能被57或67整除,若n是真正解,则输出n,并在计数器c中计数。能填入的数:00,01,02,…98,99产生可能的解:10047,10147……19947枚举法(100个)用穷举法解决问题:c:计数器,用于记录算法执行过程中已经找到的真正解的个数。表达式:n%57==o或n%67==0确定真正解在算法中使用的变量:j:本变量的作用如下:依次产生应填在千位和百位上的数值(0到99)。n:存储一个可能解。在重复处理过程中记录已经进行的重复的次数,并用它来控制重复的次数;根据空举法用for()语句来实现找真解n及真解的个数c:开始真结束计数
3、器C计数;输出计数器C的值假输出真正解;计数器置C=0;J=0;J<100?n←10047+j*100;n正解吗?真J←j+1假返回程序:main(){intn,c,j;c=0;for(j=0;j<100;j=j+1){n=10047+j*100;If(n%57==0
4、
5、n%67==0){c=c+1;printf(“%d”,n);}}Printf(“Count=%d”,c)
此文档下载收益归作者所有