# 杨辉三角
# 思路:
# 利用python 两个列表,triangle[]存放整个三角所有数据,row[]存放每一行的数据;
# 每一行开头和结尾都是1,中间的数据则是上一行相对应的两个数据之和;
triangle=[]
m = 10
for i in range(m): # i代表每第i行
row = [1] # 表示每一行第一个数据是1
if i == 0: # 只有第一行的时候执行一次
triangle.append(row)
continue
for j in range(i-1): # j代表第i行的第j个数据
row.append(triangle[i-1][j] + triangle[i-1][j+1]) # 中间的数据则是上一行相对应的两个数据之和
row.append(1)
triangle.append(row)# 把第i行数据添加到triangle=[]
print(triangle)
# 杨辉三角
# 思路:
# 利用python 两个列表,pre=[]作为中间变量,row[]存放每一行的数据,并打印;
# 每一行开头和结尾都是1,中间的数据则是上一行相对应的两个数据之和;
pre=[]
m = 10
for i in range(m): # i代表每第i行
row = [1] # 表示每一行第一个数据是1
if i == 0:
pre = row
print(row)
continue
for j in range(i-1):# j代表第i行的第j个数据
row.append(pre[j] + pre[j+1]) # 中间的数据则是上一行相对应的两个数据之和
row.append(1)
pre = row
print(row)
# 求取杨辉三角某一行某个数:
m = 9
k = 5
n = m-1
r = k-1
d = n-r
result = []
factor = 1
for i in range(1, n+1):
factor *= i
if i == r:
result.append(factor)
if i == d:
result.append(factor)
if i == n:
result.append(factor)
#print(result)
print(result[2]//(result[0]*result[1]))