杨辉三角是一个由数字组成的三角形,其中每个数字是它上方两个数字之和。给定一个整数 n,编写一个函数来生成杨辉三角的前 n 行。

例如,当 n = 5 时,生成的杨辉三角应如下所示:

   1
  1 1
 1 2 1
1 3 3 1

1 4 6 4 1

你可以假设 n 是非负整数。

Python 代码:

def generate_pascal_triangle(n):
    '''
    生成杨辉三角的前 n 行

    Args:
        n (int): 杨辉三角的行数

    Returns:
        list: 包含杨辉三角前 n 行的列表
    '''
    if n <= 0:
        return []
    triangle = [[1]]
    for i in range(1, n):
        row = [1]
        for j in range(1, i):
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        row.append(1)
        triangle.append(row)
    return triangle

# 测试代码
num_rows = 5
pascal_triangle = generate_pascal_triangle(num_rows)
for row in pascal_triangle:
    print('   ' * (num_rows - len(row)), end='')
    print(' '.join(str(x) for x in row))

代码解释:

  1. 初始化三角形: 首先创建一个列表 triangle,并将第一行 [1] 添加到其中。
  2. 迭代生成行: 从第二行开始,使用循环迭代生成每行。
  3. 计算当前行的数字: 对于当前行的每个数字,它等于上一行的对应位置和前一个位置的数字之和。
  4. 添加边角数字: 每个行的开头和结尾都添加 1
  5. 返回结果: 最后,返回包含所有行的 triangle 列表。

使用示例:

# 调用函数生成杨辉三角
pascal_triangle = generate_pascal_triangle(5)

# 打印结果
for row in pascal_triangle:
    print('   ' * (5 - len(row)), end='')
    print(' '.join(str(x) for x in row))

输出:

   1
  1 1
 1 2 1
1 3 3 1

1 4 6 4 1

希望这个例子能帮助你理解如何使用 Python 生成杨辉三角。


原文地址: https://www.cveoy.top/t/topic/pNk9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录