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

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

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

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

一、卡片

【持续更新】蓝桥杯python组真题_第1张图片

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

二、直线

【持续更新】蓝桥杯python组真题_第2张图片

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

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))

 三、货物摆放

啊哈哈,鸽王来咯

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

【持续更新】蓝桥杯python组真题_第3张图片

先求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

你可能感兴趣的:(蓝桥杯,python)