1 / 11
文档名称:

第16课解析算法和枚举算法.ppt

格式:ppt   大小:144KB   页数:11页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第16课解析算法和枚举算法.ppt

上传人:mh900965 2018/1/3 文件大小:144 KB

下载得到文件列表

第16课解析算法和枚举算法.ppt

文档介绍

文档介绍:解析法(analysis algorithm):用解析的方法,即找出
表示问题的前提条件与结果之间关系的数学表达式,
并通过表达式的计算来实现问题求解的方法。
【例1】输入直角三角形的两个直角边的边长值a和b,
然后用勾股定理计算出斜边的边长值c。
分析问题:
输入:直角三角形两个直角边的边长a和b。
处理:利用勾股定理公式
计算斜边c的值。
输出:直角三角形的斜边长c。
inut a,b
c=srq(a*a+b*b)
print c
枚举法:根据所需解决问题的条件,把该问题所有
可能的解,一一列举出来,并逐个检验出问题真正
解的方法。枚举法也称为穷举法。
【例5】求1-1000中,能被3整除的数。
分析问题:
输入:本例没有输入。
处理:
用循环结构对1-1000的数一一列举。
对每个列举的数,检验能被3整除。
输出:能被3整除的数。
i=1
do while i<=1000
if i/3=int(i/3) then
print i
end if
i=i+1
loop
枚举算法的关键步骤及注意点:
一一列举,用循环结构来实现。
检验是否符合问题的要求,
用分支结构实现。
:循环变量与判断对象是否是
同一个变量;一般情况下没有输入;
输出经常是在判断的一个分支中实现的。
【例10】一张单据上有一个5位数的编号,万位数是
1,千位数是4,百位数是7,个位数是8,十位数已
经模糊不清,只知道该5位数是57或67的倍数,找出
所有满足这些条件的5位数并输出。
1、画出流程图
2、对照流程图,写程序
【例8】若一个三位数x=100a+10b+c(a、b、c都是
个位数),满足a*a*a+b*b*b+c*c*c=x,则x称为水仙花数。
找出所有的水仙花数。
运算符“\”的作用:
除法以后取整数部分
i=100
do while i<=999
a=i\100
b=(i mod 100)\10
c=i mod 10
if a*a*a+b*b*b+c*c*c=i then
print i,a,b,c
end if
i=i+1
loop