def generate_pascals_triangle(n):
triangle = []
for i in range(n):
# 每一行的第一个和最后一个元素都是1
row = [1]
if triangle:
last_row = triangle[-1]
# 计算中间的元素,每个元素是上一行的两个相邻元素之和
row.extend([last_row[j] + last_row[j + 1] for j in range(len(last_row) - 1)])
# 每一行的最后一个元素也是1
row.append(1)
triangle.append(row)
return triangle
# 打印杨辉三角的前n行
def print_pascals_triangle(n):
triangle = generate_pascals_triangle(n)
width = len(" ".join(map(str, triangle[-1]))) # 计算最后一行的宽度,用于居中显示
for row in triangle:
print(" ".join(map(str, row)).center(width))
# 例如,打印前10行的杨辉三角
print_pascals_triangle(10)