【问题描述】
已知杨辉三角前两行数据放在列表变量lst=[[1],[1,1]]中。现从键盘输入[1,10]之间一个整数n,若n是1或2,则输出第一行或第二行的数据,否则将第三行以后的数据依次添加到变量lst中,例如,输入4,则lst值为 [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]],最后输出杨辉三角数据矩阵。
【输入形式】从键盘输入n的值(杨辉三角行数)
【输出形式】用print函数在屏幕上输出
【样例输入】
5
【样例输出】
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
【样例说明】
【评分标准】
# 杨辉三角数据矩阵
n = int(input()) # 矩阵行数
lst = [[1], [1, 1]] # 前两行数据放到列表变量lst中
if n == 1:
print(lst[0][0]) # 只输出第一行数据
elif n == 2: # 只输出前两行数据
for i in range(n):
for j in range(i + 1):
print(lst[i][j], end=" ")
print()
else: # 计算三行或三行以上数据
for i in range(2, n):
t = [1] # 第i+1行第一个数据是1
for j in range(1, i):
x =lst[i-1][j-1]+lst[i-1][j]
# 计算每行中间数据
t.append(x) # 追加行数据
t.append(1) # 第i+1行最后一个数据是1
lst.append((t))
# 将第i+1行添加到列表变量lst中
# 输出n行数据矩阵(n在[3,10]之间)
for i in range(n):
for j in range(i + 1):
print(lst[i][j], end = " ") # 输出每行数据
print() # 输出一行数据后换行