蓝桥杯2019-2021前面两道填空题

这两道填空题,应该是蓝桥杯中最简单的两道题,我自己总结了一下,分享给大家

2019——1(2019)

请添加图片描述

r = 0
for i in range(1, 2020):
    for j in str(i):
        if j in ['2', '0', '1', '9']:
            r = r + i ** 2
            break
print(r)

2020——1 (门牌制作)

请添加图片描述
count计算个数

n=0
for i in range(1,2021):
    n+=str(i).count('2')
print(n)

2021——1 (卡片)

请添加图片描述

n=0
i=1
while True:
    n+=str(i).count('1')
    if n==2021:
        break
    i+=1
print(i)

2019——2 (数列求值)

请添加图片描述
题目要求后面四位数的个数,我们只需要将后面的四位数来进行计算即可

l = [1, 1, 1]
for i in range(20190321):
    mm = sum(l) % 10000
    l[0] = l[1]
    l[1] = l[2]
    l[2] = mm
print(l[2])

2020——2 (寻找2020)来自于

请添加图片描述
通过 with open将题目要求的数据读取出来放进一个二维数组中,
进行分开讨论将所有情况计算出

l = []
with open('2020.txt') as tp:
    for line in tp.readlines():
        l.append(list(line.strip()))
s = len(l)  
q = len(l[1]) 
count = 0
for i in range(s - 1):  # 行
    for j in range(q - 3):
        if (l[i][j] == '2' and l[i][j + 1] == '0' and l[i][j + 2] == '2' and l[i][j + 3] == '0'):
            count = count + 1
for i in range(q - 3):  # 列
    for j in range(s - 1):
        if (l[i][j] == '2' and l[i + 1][j] == '0' and l[i + 2][j] == '2' and l[i + 3][j] == '0'):
            count = count + 1
for i in range(q - 3):  # 左上到右下
    for j in range(q - 3):
        if (l[i][j] == '2' and l[i + 1][j + 1] == '0' and l[i + 2][j + 2] == '2' and l[i + 3][j + 3] == '0'):
            count = count + 1
print(count)

2021——2(直线)

请添加图片描述
通过数学,公式
k=(y2-y1)/(x2-x1)
b=(x2y1-x1y2)/(x2-x1)

points = [[i, j] for i in range(20) for j in range(21)]
res = set()
for i in range(len(points)):
    x1, y1 = points[i][0], points[i][1]
    for j in range( len(points)):
        x2, y2 = points[j][0], points[j][1]
        if x1 == x2:
            continue
        k = (y2 - y1) / (x2 - x1)
        b = (x2 * y1 - x1 * y2) / (x2 - x1)
        if (k, b) not in res:
            res.add((k, b))
print(len(res) + 20)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值