首页 > 其他 > 详细

杨辉三角

时间:2020-09-01 08:54:50      阅读:62      评论:0      收藏:0      [点我收藏+]
杨辉三角

技术分享图片

打印前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)

杨辉三角

原文:https://blog.51cto.com/zhaochj/2526357

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!