算法优化:Pthon3实现杨辉三角前15行的计算

本文介绍了如何使用Python3优化算法来计算并展示杨辉三角的前15行。文中提供了两种不同的实现方式,包括一种节约内存空间但编程思路较复杂的变形方法。通过实例运行结果,读者可以理解并学习到优化后的算法实现。
摘要由CSDN通过智能技术生成
lst1 = []
n = 15    #代表打印15行的杨辉三角
for i in range(1,n+1):
    row = [1] * i    #一次开辟出每行元素的占位符号,此处使用1是因为杨辉三角头尾都是1元素
    for x in range(0,i-2):
        mid = i // 2
        if x < mid :    #从杨辉三角可以看出,每行只需算前半段即可(中间数属于特例另外算即可),后半段可以不用算
            rel = pre[x] + pre[x+1]
            row[x+1] = rel
            row[-x-2] = rel    #利用列表的负索引即可把前半段的计算结果赋予后半段
        if x == mid:    #中间数在此处进行特例计算
            rel = pre[x] + pre[x+1]
            row[x+1] = rel
    else:
        lst1.append(row)
        pre = row
else:
    print(lst1)

运行结果:

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1], [1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1], [1, 11, 55, 165, 330, 462, 462
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值