题库 高中信息

题干

自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。使用枚举法寻找5位数以内的自幂数算法如下:
(1)使用循环列出1到99999中的每一个数zmsknz
(2)通过自定义函数ddknzms拆解得到每个数中的每位数上的数码及它们对应的n次幂之和
(3)将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)) ^  ①   
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  Then List1.AddItem (Str(zmsknz))
Next zmsknz
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2015-08-21 04:10:15

答案(点此获取答案解析)

同类题2

由 n 行数字组成的数字三角形如图所示。设计一个算法,对于由 n 行数字组成的数字三角形(数字范围1,50,计算从三角形的顶至底的路径经过的数字和的最大值,每一步可以从当前点走到左下方的点也可以走到右下方的点。

寻求路径最大值的算法设计如下:
按三角形的行划分,若有n 行,则有n-1 个步骤
① 从底层开始,本身数即为最大值
② 倒数第二层的计算取决于底层的数据:
12+6=18,13+14=27,24+15=39,24+8=32;
③ 倒数第三层的计算取决于底二层的数据:
27+12=39,39+7=46,39+26=65;
④ 倒数第四层的计算取决于底三层的数据:
46+11=57,65+8=73;
⑤ 最后的路径:13—8—26—15—24   其和为 86。
根据上述算法描述,设计程序界面如下图所示,点击“生成金字塔”按钮,在列表框中生成数字金字塔,点击“寻求路径最大值”按钮,在文本框 text1 中输出最大值。

依据上述描述设计如下 VB 程序:
Const n = 5
Dim sx As String
Dim i, j, k, a(1 To 100) As Integer
Private Sub Command1_Click()
List1.Clear
For i = 1 To n
For j = 1 To i

__________

sx = sx + Str(a((i - 1) * n + j))

Next j

For k = n To i Step -1

 sx = " " + sx

Next k

List1.AddItem sx

sx = ""

Next i
End Sub
Private Sub Command2_Click()
For i = n To 1 Step -1
For j = 2 To i

If__________Then

a((i - 2) * n + j - 1) = a((i - 1) * n + j - 1) + a((i - 2) * n + j - 1)

Else

a((i - 2) * n + j - 1) = a((i - 1) * n + j) + a((i - 2) * n + j - 1)

End If

Next j

Next i
__________
End Sub
请回答下列问题:
(1)若数字金字塔如图   ,输出路径最大值是______________________。
(2)请在①②③划线处填入合适的代码。