08-杨辉三角形

  • 阅读: 357
  • 更新: 2022-06-11

难度:

1. 题目描述

2. 关键点

  • 杨辉三角行的特性

3. 代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
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. 运行示例

1
2
3
4
5
6
7
8
9
                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. 使用生成器来实现

=== 全文完 ===


欢迎加入QQ群:778391413

京公网安备 11011302003970号 京ICP备2022012301号-1