自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。使用枚举法寻找5位数以内的自幂数算法如下:⑴使用循环列出1到99999中的每一个数zmsknz
⑵通过自定义函数ddknzms拆解得到每个数中的每位数上的数码及它们对应的n次幂之和
⑶将zmsknz与ddknzms进行比较,若相等则说明是自幂数,可将其加入列表。
编写VB程序,使用枚举法得到5位数以内的自幂数,程序设计界面如图所示:
请根据算法及相应注释将下面的程序补充完整:
Function ddknzms(zmsknz As Long) As Long '得到可能的自幂数
Dim zmsknz_str As String '字符串类型自幂数可能值
Dim zmsknz_length As Integer, zmswsxh As Integer '字符串类型自幂数可能值字符个数
zmsknz_str = Trim(Str(zmsknz))
zmsknz_length = Len(zmsknz_str)
For zmswsxh = 1 To zmsknz_length
ddknzms = ddknzms + Val(Mid(zmsknz_str, zmswsxh, 1))^ {#blank#}1{#/blank#}
Next zmswsxh
End Function
Private Sub Command1_Click()
Const ZMSWS = 5
Dim zmsknz As Long, zmsknz_zz As Long
zmsknz_zz = 10 ZMSWS - 1
For zmsknz = 1 To zmsknz_zz
If {#blank#}2{#/blank#} Then List1.AddItem (Str(zmsknz)
Next zmsknz
End Sub