好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

杨辉三角

杨辉三角

打印前6行杨辉三角

在计算机中习惯以0开始计算,所以前6行就是 0,1,2,3,4,5 这6行,从第2行开始,非头尾数值为其肩膀上的两个数之和,头尾数值都为1。

 n = 6
triangle = [[1], [1, 1]]  # 起始这两行特殊处理
for i in range(2, n):  # 第6行数据其实就是i=5时的数据
    pre = triangle[-1]  # 上一行数据
    cur = [1] # 初始化当前行数据
    for j in range(0, i - 1):
        cur.append(pre[j] + pre[j + 1])
    cur.append(1)  # 补最后一个数据
    triangle.append(cur)
print(triangle)
# [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]]
 

这种解题思路是把第 0和1 行特殊处理,也可能用另一种解题思路

 n = 6
triangle = []
for i in range(n):
    row = [1] # 初始化一行
    triangle.append(row)
    if i == 0:
        continue
    for j in range(i - 1):
        pre = triangle[-2] # 一进外层循环就append了row,所以倒数第二个是上一行数据
        row.append(pre[j] + pre[j+1])
    row.append(1) # 补最后一个1
print(triangle) 

查看更多关于杨辉三角的详细内容...

  阅读:29次