杨辉三角

杨辉三角

              1

        1       1

     1      2      1

1      3        3      1

...................

其每一行的值均与上一行关系密切,如第3行的中间值2是第2行两值相加而得

python上,列表的下标是可以取得负下标

如可以这样想:

每一次在旧的列表上添加新的元素,值为0,下标-1就正好为0

计算第2行:

        i=0, i-1=-1, 而下标-1值为0,下标0则为1,将下标-1与下标0,相加得1

        i=1, i-1=0, 而下标1值为0,同上,得1+0 = 1---->1      1

计算第3行:

        将前一行视为列表L,计算规则为L[i-1]+[i]

        同样,先增加L的元素,追加一个元素(0)

        那样L=[1,1,0]

        计算:

                      i = 0,        L[i-1] +L[i] =      L[-1]+L[0] =   0 +1=1

                      i=1,        L[i-1] + L[i] =      L[0]+L[1]=    1+1=2

                      i = 2,     L[i-1] +L[i]=          L[1]+[2]=     1+0=1

此次为:1   2    1

下次开始则为(1    2   1   0),计算规则如上

'''
杨辉三角
'''

def myTry():
    l = [1]
    while True:
        yield l 
        l.append(0)
        l = [l[i-1]+l[i] for i in range(len(l)) ]

num = 0
for temp in myTry():
    print(temp)
    if num == 10:
        break
    num += 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值