杨辉三角(最简单易懂)
题目
编写两个函数,一个函数接收一个整数num为参数,生成杨辉三角形前num行数据,另一个函数接收生成的杨辉三角形并按以下形式输出,如图所示。
在图中,列出了杨辉三角形的前9行。每一层左右两端的数都是1并且左右对称,从第1层开始,每个不位于左右两端的数等于上一层左右两个数相加之和。
代码
l = []
for i in range(n):
y = [] # 存储一行,每次清空
for j in range(i + 1):
if j == 0 or j == i:
y.append(1)
else:
y.append(l[i - 1][j] + l[i - 1][j - 1])
l.append(y) # 放入所有行存储列表中
return l
def form(z):
for i in range(len(z)):
s = str(x[i])
s = s.strip('[]')
s = s.replace(',', ' ')
print(s.center(n * 10))
n = 9
x = triangle(n)
form(x)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24