当前位置: 高中信息技术 / 综合题
  • 1. (2019高三上·浙江期中) 由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. (1) 若数字金字塔如图 ,输出路径最大值是
    2. (2) 请在①②③划线处填入合适的代码。

       ② ③ 

微信扫码预览、分享更方便