杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
row=eval(input())#输出row行
yanhui=[]#杨辉三角数组
past=[0,1,0]#第一行 前后加0防止out of index
for i in range(1,row+1):#遍历每row行
now=[0]#每一行前加0防止out of index
for j in range(1,i+1):#遍历一行内的数
#1
#1 1
#1 2 1
#1 3 3 1
now.append(past[j]+past[j-1])#仔细观察以上数组,一行内的其中一个数都满足【上数】+【左上数】
now.append(0)#每一行后加0防止out of index
yanhui.append(now)#放入杨辉三角数组,形成二维数组
past=now#过去变成现在
for i in yanhui:#遍历杨辉三角二维数组
for j in range(1,len(i)-1):#遍历二维数组内的一维数组
ending=""#不换行
if j==len(i)-2:#当遍历到一维数组内的最后一个数时
ending="\n"#换行
print(f"{i[j]} ",end=ending)#打印出带空格的以下结果
#1
#1 1
#1 2 1
#1 3 3 1
欢迎评论