寻求路径最大值的算法设计如下:
按三角形的行划分,若有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
请回答下列问题:
① ② ③