谁能帮我解释一下杨辉三角的代码?急

来源:百度知道 编辑:UC知道 时间:2024/05/20 07:24:27
Private Sub Command1_Click()
Const n = 18
Dim a(n, n) As Integer
Dim i, j As Integer
a(0, 0) = 1
For i = 1 To n - 1
a(i, 0) = 1
a(i, i) = 1
For j = 1 To n - 1
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next j, i
For i = 0 To n - 1
For j = 0 To i
Print a(i, j);
Next j
Print
Next i
End Sub

Private Sub Command1_Click()
Const n = 18 ' 定义一个常数18,这里指的是杨辉三角的行数,如果以后要打印其他数量的三角,只需要简单的修改这个数字即可
Dim a(n, n) As Integer ' 定义一个二维数组,来存贮杨辉三角的数组
Dim i, j As Integer ' 定义二维数组的循环变量

a(0, 0) = 1 ' 杨辉三角的顶点,值为1
For i = 1 To n - 1 ' 开始给杨辉三角对应的数组赋值
a(i, 0) = 1 ' 每一行的第一列为1
a(i, i) = 1 ' 每一行的最后一列为1
For j = 2 To i - 1 ' 注意,这里原来是 For j = 1 To n - 1 ,有误。开始给三角内部赋值
a(i, j) = a(i - 1, j - 1) + a(i - 1, j) ' 杨辉三角内部的值,当前位置(i行j列)等于等于上一行(i-1)左边的值(j-1)加上右边的值(这里右边的值在数组矩阵中处于当前位置的正上方,故为j)。
Next j
Next i ' 赋值结束

For i = 0 To n - 1 ' 开始打印出来
For j = 0 To i
Print a(i, j);
Next j
Print ' 一行打印完了,换行
Next i
End Sub

给你一个杨辉三角,你对照着看代码:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1

规律看出来了么?

很显然,一下语句是对定值赋值。