*python蓝桥杯 杨辉三角(省赛)

一开始的想法:将所有杨辉三角里的数放在一个数组里,用index索引到这个数打印出来它的顺序就ok了于是实现代码:

l1=[[1],[1,1]]
l=[]
for i in range(2,200):#i=2 第三行  1 2 1
    l2=[1]
    for j in range(i-1):#i=2 循环一次 i=3 循环两次
        # print(i,j)
        m=l1[i-1][j]+l1[i-1][j+1]  #i=2 j=0  i=3 j=0 1
        l2.append(m)
    l2.append(1)
    l1.append(l2)
    for j in i:
        l.append(j)
n=int(input())
print(l.index(n)+1)

但是只拿到40分,给的测试数字也不是很大,为什么就是找不到呢?后来想明白了,这些数字应该是在下面层的边上,所以数字很小但是并没有计算在这个数组里。所以本题不能用这个方法做。用二分法+分析来做。

根据组合数性质,只考虑前一半数。

从图中可以得出的结论:

①任意一个正整数N在杨辉三角里都会出现&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值