杨辉三角形又称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]
标签:triangle,print,range,杨辉三角,col,row
From: https://www.cnblogs.com/codingsaveWorld/p/18050139