8-6 【Python0007】杨辉三角形
分数 10
作者 doublebest
单位 石家庄铁道大学

【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】一行中输入1个整数n。
【输出格式】输出n行杨辉三角形,每个数的显示格式:占5位,右对齐。
【输入样例】3
【输出样例】 1 1
1 2 1
1 3 3 1

 

def generate_pascal_triangle(n):

 

"""

 

生成 n 行杨辉三角形

 

 

 

参数:

 

n (int): 行数

 

 

 

返回:

 

list: 杨辉三角形列表

 

"""

 

triangle = \[\]

 

 

 

for i in range(n):

 

row = \[\]

 

for j in range(i + 1):

 

if j == 0 or j == i:

 

# 第一列和最后一列的元素都是 1

 

row.append(1)

 

else:

 

# 其他位置的元素等于上一行相邻两个元素之和

 

num = triangle\[i - 1\]\[j - 1\] + triangle\[i - 1\]\[j\]

 

row.append(num)

 

triangle.append(row)

 

 

 

return triangle

 

\# 获取用户输入

 

n = int(input("请输入杨辉三角形的行数: "))

 

\# 生成杨辉三角形并输出结果

 

triangle = generate_pascal_triangle(n)

 

for row in triangle:

 

# 使用占 5 位、右对齐的格式输出每个数

 

for num in row:

 

print(f"{num:5}", end="")

 

print()

 
代码量 100行
时间 1小时