内容正文:
给一串钥匙,没有标记,忘了告诉你哪一把能开机房,你该怎么办?
一把一把按某个顺序试过来,直到找到能开门的那把?
枚举算法
基本思想是把问题所有可能的解,一一罗列出来并逐一验证,若是问题的真正解,予以采纳,否则就抛弃它。
原则:做到既不遗漏任何一个解、也不重复
枚举算法
枚举算法
修自行车胎
暴力破解密码
求水仙花数
水仙花数为三位数,且各个位数立方和等于该数本身
1.枚举范围:
2.判断一个三位数x是否为水仙花数
百位a:________________
十位b:________________
个位c:________________
成立的条件:
3.一一罗列
逐一验证
x \ 100
x \ 10 Mod 10
x Mod 10
[100,999]
——从100开始遍历到999
——对罗列出的每个数取出其百、十、个位,并用𝒙=𝒂^𝟑+𝒃^𝟑+𝒄^𝟑验证
求水仙花数
一一罗列——从100开始遍历到999
For x = 100 To 999
Next x
逐一验证——对罗列出的每个数取出其百、十、个位,并用验证
If x = a ^ 3 + b ^ 3 + c ^ 3 Then 输出、计数
求水仙花数
Private Sub Command1_Click()
Dim x As Integer, n As Integer
Dim a As Single, b As Integer, c As Integer
n = 0
For x = 100 To 999
a = x \ 100
b = x \ 10 Mod 10
c = x Mod 10
If x = a ^ 3 + b ^ 3 + c ^ 3 Then
List1.AddItem Str(x)
n = n + 1
End If
Next x
List1.AddItem "共有水仙花数" + Str(n) + "个"
End Sub
P76页作业加一道
四叶玫瑰数是指四位数各位上的数字的四次方之和等于本身的数。请编程求解之,所有变量要求定义。
写在P76最后
一些问题
检测一个字符串m中包括某字符串s的个数,记录起点