杨辉三角
打印前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)
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did169433