KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
第一行包含一个整数数n。 (1≤n≤30)
包含n行,为杨辉三角的前n行,每个数输出域宽为5。
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1n = int(input().strip())
arr = [1,1]
if n==1:
print(f"{1:>5}")
elif n==2:
print(f"{1:>5}{1:>5}")
else:
print(f"{1:>5}")
print(f"{1:>5}{1:>5}")
for i in range(n-2):
newarr = [1]
for j in range(1,len(arr)):
temp = arr[j] + arr[j-1]
newarr.append(temp)
newarr.append(1)
arr = newarr
for i in newarr:
print(f"{i:>5}",end="")
print()
n = int(input())
a = []
for i in range(1,n+1):
if i == 1:
a.append([i])
a.append([1,*[a[i-1][j-1]+a[i-1][j] for j in range(1,i)],1])
for i in a[:-1]:
for j in i:
print("{:>5d}".format(j),end="")
print() 方式二 n=int(input())
a=[[0]*n for i in range(n)]
for i in range(n):
for j in range(i+1):
if j==0&nbs***bsp;j==i:
a[i][j]=1
else:
a[i][j] = a[i-1][j-1] + a[i-1][j]
for i in a:
for j in i:
if j > 0:
print("{:>5d}".format(j),end="")
print()