文档介绍:解析法(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