#杨辉三角的特点: 第n行 11的n-1次方
#第n行的和:2的n-1方
#列和等于拐角处的数字
#斐波那契数列 1.1.2.3.5.8…前两的数的和等于第三个数
1.常规方法
num=int(input())
list1=[]
for i in range(num):
list2=[]
if i==0:
list2=[1]
elif i==1:
list2=[1,1]
else:
pass
list1.append(list2)
print(list1)
2.笨蛋方法 (无敌for循环)
。。。。这我第一次写的 哈哈哈 现在也看不懂了
a = []
for i in range(8):
a.append([])
for j in range(8):
a[i].append(0)
for i in range(8):
a[i][0] = 1
a[i][i] = 1
for i in range(2,8):
for j in range(1,i):
a[i][j] = a[i-1][j] a[i-1][j-1]
for i in range(8):
for j in range(i 1):
print("{:3d}".format(a[i][j]),end=" ")
print()
3.方法三
#这是我最近一次(2022.5.29) 刷到杨辉三角的一个解题思路
- 第一步 直接根据输入的数 创建一个数字三角
- 第二部:判断层数 如果是两层以内的直接输出 如果不是转第三步
- 第三步:直接从第三层开始 当前层与上一层放进一个添加函数里边 当成两个列表处理,需要处理的元素 处理公式为: l2[x]=l1[x]+l1[x-1],完事之后返回第二个列表,继续进行循环,直至最后一层。
l=[]
n = eval(input())
for i in range(1,n+1): #创建数字三角
q=[1]*i
l.append(q)
def yh_add(l1,l2): #添加函数
for i in range(1,len(l2)-1):
l2[i]=l1[i]+l1[i-1]
return l2
if len(l)>2: #修改元素值
for i in range(2,len(l)):
yh_add(l[i-1],l[i])
print(l)