内容正文:
情景导入
暑假我带着一个有三位数字的密码行李箱去旅行,旅行途中发现自己忘记了开锁的密码,但我还记得第一位密码是"7",后面两位数字已经不记得,我该怎么办?
模 拟
§3.2 用穷举法解决问题
什么是穷举法
穷举法:也叫枚举法,列举法,它将求解对象一一列举出来,然后逐一加以分析、处理、并验证结果是否满足给定的条件,枚举完所有对象,问题将最终得以解决。
用穷举法解决问题的步骤
Step1:分析问题
Step2:确定要枚举的求解对象,同时确定求解对象的枚举范围
Step3:一一枚举,然后加以分析、处理、验证
举例:水仙花数
已知水仙花数满足以下两个条件
水仙花数是一个三位正整数
这个三位数刚好等于各个位上的数字立方和
例如:153就是一个水仙花数
编程输出所有的水仙花数。
举例:水仙花数
分析问题:假设这个三位数为m,那么
百位上的数字a为:
十位上的数字b为:
个位上的数字c为:
m满足的条件为:
m为三位数
m=a^3+b^3+c^3
a=m\100
b=(m-a*100)\10
c=m mod 10
举例:水仙花数
确定枚举的求解对象:
每一个三位数m
确定求解对象的枚举范围
100≤m≤999
验证的条件
m=a^3+b^3+c^3
开始
m=100
m<=999?
m=a3+b3+c3?
输出m
是
m=m+1
否
求出百位数字a
求出十位数字b
求出个位数字c
是
结束
否
举例:水仙花数
Private Sub Command1_Click()
Dim m As Integer
Dim a, b, c As Integer
For m = _____ To _____ '枚举三位数m
a = m \ 100 '计算百位数字a
b = (m - 100 * a) \ 10 '计算十位数字b
c = m Mod 10 '计算个位数字c
If m = __________________ Then '验证条件
Print m & "是水仙花数"
End If
Next m
End Sub
运行程序
100
999
a ^ 3 + b ^ 3 + c ^ 3
举例:水仙花数
分析问题: