杨辉三角(最简单易懂)

题目

编写两个函数,一个函数接收一个整数num为参数,生成杨辉三角形前num行数据,另一个函数接收生成的杨辉三角形并按以下形式输出,如图所示。

在图中,列出了杨辉三角形的前9行。每一层左右两端的数都是1并且左右对称,从第1层开始,每个不位于左右两端的数等于上一层左右两个数相加之和。

代码

    l = []
    for i in range(n):
        y = []  # 存储一行,每次清空
        for j in range(i + 1):
            if j == 0 or j == i:
                y.append(1)
            else:
                y.append(l[i - 1][j] + l[i - 1][j - 1])
        l.append(y)  # 放入所有行存储列表中
    return l


def form(z):
    for i in range(len(z)):
        s = str(x[i])
        s = s.strip('[]')
        s = s.replace(',', '  ')
        print(s.center(n * 10))


n = 9
x = triangle(n)
form(x)

结果

更多推荐

杨辉三角 Python(简单易懂)