蓝桥杯填空题汇总

文章目录

法无定法,在于因时因势
难如填空题,也有巧妙的方法去暴力与枚举
确定边界,巧妙判断
输出一部分,找规律

2024年pythonA组省赛A题

2024年pythonA组省赛A题

思路分析:由于2*2和1*1的正方形的数量都很多,所以不可能一个个枚举进行判断,那么我们可以思考如果全部的正方形都组合在一起,能够拼接的理论的最大的边长是多少?我们从这个最大的理论边长逐步往小判断
这里我们应该注意到,如果边长是奇数的话,说明最外面的半圈是由1*1的正方形所包围的,如果是偶数,那么就可以先判断2*2是否够,如果不够,再用1*1补上
如果a为奇数,那么所需的1*1的块数就是2*a-1

python 复制代码
import math
a = 7385137888721
b = 10470245

# 理论上的最大值
maxq = math.sqrt(4*a+b)
# 通过计算发现 maxq = 5435123.0
# 发现是奇数,那么就判断1*1的模块是否能够包围半圈
# 需要的数量是 2*(maxq-1)+1
need1 = 2*(maxq-1)+1
print(need1)
# need1 = 10870245.0
# 发现 need > b ,所以这个maxq不满足,那么我们就判断maxq-1的情况
maxq = maxq-1 # 此时的maxq 是5435122,是偶数,那么我们首先判断这个2*2的面积是否满足
need2 = (maxq//2)**2
print(need2)
# need2 = 7385137788721 正好等于 a
# 所以结果就是 5435122

2024年pythonA组省赛B题

2024年pythonA组省赛B题

思路分析:由于数字很大,所以不太可能逐一暴力,又因为是求解数目的题目,所以可以考虑先输出1000范围获得更大一点范围的结果,查看是否有规律!

python 复制代码
def cheng(i):
    ans = 1
    for i in range(1,i+1):
        ans*=i
    return ans

for i in range(1001):
    if ((1+i)*i//2 - cheng(i))%100 == 0:
        print(i,end=" ")
print()
# 结果是 1 3 24 175 199 200 224 375 399 400 424 575 599 600 624 775 799 800 824 975 999 1000
# 可以看到除了 1 和 3
# 每200个数会出现 以24,75,99,00 结尾的四个数
a = 2024041331404202
zheng = a // 200
yu = a % 200
print(zheng,yu)
# 10120206657021 2
# 结果
# 由于余数 yu 小于24,所以余数部分不会产生新的结果,我们只需用开始的1和3 加上后面的 4*zheng即可
ans = 2 + 4* zheng
print(ans)
# 结果就是 40480826628086
相关推荐
HZY1618yzh2 天前
洛谷题解:P16304 [蓝桥杯 2026 省 Java C 组] 抽奖活动
java·c++·算法·蓝桥杯
空中海3 天前
iOS 动态分析、抓包与 Frida Hook
ios·职场和发展·蓝桥杯
wljy16 天前
牛客每日一题(2026.4.30) 整数域二分
c语言·c++·算法·蓝桥杯·二分
Advancer-6 天前
第二次蓝桥杯总结(上)
java·算法·职场和发展·蓝桥杯
WL_Aurora7 天前
备战蓝桥杯国赛【day3】
python·蓝桥杯
wljy17 天前
每日一题(2026.4.29) 猫猫与数学
c语言·c++·算法·蓝桥杯·stl·牛客
待bong7 天前
蓝桥杯EDA客观题(自己收集的)
职场和发展·蓝桥杯
沉默-_-7 天前
备战蓝桥杯-哈希
c++·学习·算法·蓝桥杯·哈希算法
Reese_Cool7 天前
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
开发语言·c++·蓝桥杯·stl
小年糕是糕手8 天前
【C/C++刷题集】栈、stack、队列、queue核心精讲
c语言·开发语言·数据结构·数据库·c++·算法·蓝桥杯