Skip to content

杨辉三角形

难度:⭐⭐

1. 题目描述

题目描述

  • 输出前 9 行的杨辉三角形
  • 杨辉三角形示例可看下面的代码运行示例
  • 特性:除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和

2. 关键点

  • 杨辉三角行的特性

3. 代码实现

点击显示代码
python
lst = []

for i in range(9):
    s = [1]
    if i == 0:  # 第一行
        pass
    elif i == 1:  # 第二行
        s += [1]
    else:  # 其它行
        for j in range(len(lst[i-1]) - 1):
            num = lst[i-1][j] + lst[i-1][j+1]
            s.append(num)
        s += [1]
    lst.append(s)

for i, s in enumerate(lst):
    print('  ' * (9-1-i), end='')  # 输出每行前边的空格
    ss = [str(c).center(2) for c in s]
    print('  '.join(ss))

4. 运行示例

txt
                1
              1   1
            1   2   1
          1   3   3   1
        1   4   6   4   1
      1   5   10  10  5   1
    1   6   15  20  15  6   1
  1   7   21  35  35  21  7   1
1   8   28  56  70  56  28  8   1

5. 进阶思考

  1. 使用生成器来实现