杨辉三角(三种方法)

#杨辉三角的特点: 第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) 刷到杨辉三角的一个解题思路

  1. 第一步 直接根据输入的数 创建一个数字三角
    在这里插入图片描述
  2. 第二部:判断层数 如果是两层以内的直接输出 如果不是转第三步
  3. 第三步:直接从第三层开始 当前层与上一层放进一个添加函数里边 当成两个列表处理,需要处理的元素 处理公式为: 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)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值