法一:
n=6
triangle=[[1],[1,1]]
for i in range(2,n):
cur=[1]
pre=triangle[i-1]
for j in range(i-1):
cur.append(pre[j]+pre[j+1])
cur.append(1)
triangle.append(cur)
print(triangle)
法二:
n=10
triangle=[]
for i in range(0,n):
cur=[1]
triangle.append(cur)
if i==0:
continue
pre=triangle[i-1]
for j in range(i-1):
cur.append(pre[j]+pre[j+1])
cur.append(1)
print(*triangle,sep='\n')
法三:单行覆盖法
n=10
row=[1]*n #一次性开辟空间
for i in range(n):
old=1
for j in range(i//2):
row[j+1],old=row[j+1]+old,row[j+1]
row[i-(j+1)]=row[j+1] #使用对称法
print(row[:i+1])