杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

下面给出了杨辉三角形的前4行:

   1


  1 1


 1 2 1


1 3 3 1

给出n,输出它的前n行。

输入格式
输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出

1
1 1
1 2 1
1 3 3 1

先创建数组,在对第三行的第二列开始编写规则。

triangle = []
n = int(input())
for i in range(n):
    triangle.append((i + 1) * [1]) # 先生成都是1的数组

for row in range(2, n): #开始应用规则
    for col in range(1, row):
        triangle[row][col] = triangle[row - 1][col] + triangle[row - 1][col - 1]
for k in triangle:
    for j in k:
        print(j, end=' ')
    print()

不创建整个数组,我们只对每行进行处理,数组每次接受到的只有一行。

N=[1] # [1] [1,1] [1,2,1]...

for i in range(10):
    for row in N:
        print(row,end=' ')
    print()
    N.append(0) # 我们用0补齐空余的部分。
    N = [N[k]+N[k-1] for k in range(i+2)] # 应用规则 [1,2,1,0] [1,3,3,1]
posted on 2024-03-03 15:44  逢考必过好吗秋梨膏  阅读(4)  评论(0编辑  收藏  举报