【持续更新】蓝桥杯python组真题

原则:1、所有的题都来自蓝桥官网提供的历年真题

2、不一定全是python组的,但所有回答都会用python语言写出

3、我尽量一天至少做一道...

一、卡片

a=[]
for i in range(0,10):
    a.append(2021)       #0到9,每个数字2021张

def num(n):
    while n>0:
        if n/10 == 0:
            a[n]=a[n]-1
        else:
            a[n%10]=a[n%10]-1
            n=n//10

for i in range(1,10000):    #每拼一个数少对应的牌
    num(i)
    if 0 in a:
        print(i)
        break

二、直线

在验证我的答案是否正确时,发现了我的思路的上位替代,于是把它贴下:

li = set()   #集合去重
li1 = []

m, n = map(int, input().split())    #输入

for x in range(m):
    for y in range(n):
        li1.append([x, y])    #以坐标点的方式,存储于二维数组中

def sameline(a, b):
    global li
    if a[0] == b[0] or a[1] == b[1]:   #如果在同一条直线上,则不计数
        pass
    else:
        k = (b[1] - a[1]) / (b[0] - a[0])
        b = a[1] - k * a[0]
        li.add((k, b))

for a in li1:
    for b in li1:
        sameline(a, b)

print(m + n + len(li))

 三、货物摆放

啊哈哈,鸽王来咯

“胡适之啊胡适之,你怎能如此堕落”

先求n的约数,再暴力循环一下就可

a=[1]
n=2021041820210418
sum=0

for i in range(2,100000000):   
    if n%i==0:
        a.append(i)

for i in a:
    temp=n//i
    if temp not in a:
        a.append(temp)    #列表a存储n的所有约数

for i in range(len(a)):
    for j in range(len(a)):
        for t in range(len(a)):
            if a[i]*a[j]*a[t]==n:
                sum=sum+1

print(sum)   #输出结果2430
  • 5
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值