代码实现:
# yang_hui_triangle.py
from collections import deque
def yang_hui_triangle(row_num: int = 10, max_decimal: int = 3):
seq_que = deque()
seq_que.append(1) # 将第1行的元素入队
for i in range(2, row_num+1): # 产生第i行元素并入对,同时打印第i-1行的元素
print(' '*((row_num-(i-1))*max_decimal), end='') # 打印1到row_num-1行前的空格字符
seq_que.append(1) # 将第i行的第一个元素入队
for j in range(2, i): # 利用队中第i-1行元素差生第i行的中间i-2个元素并入队
x = seq_que.popleft()
print(str(x).center(max_decimal, ' '), end=' '*max_decimal) # 打印第i-1行除最后一个元素外的所有元素
y = seq_que[0]
z = x + y # 利用队中第i-1行的元素长生第i和元素
seq_que.append(z)
x = seq_que.popleft()
print(str(x).center(max_decimal, ' ')) # 打印第i-1行的最后一个元素
seq_que.append(1)
while seq_que: # 打印最后一行元素
x = seq_que.popleft()
print(str(x).center(max_decimal, ' '), end=' '*max_decimal)
print()
if __name__ == '__main__':
yang_hui_triangle(7)
"""
运行结果:
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
Process finished with exit code 0
"""
[引用《数据结构–用C语言描述 耿国华版》]