小蓝刷题,每日一练,陪你一起,冲刺国赛! 
目录
🏆真题Ⅰ:猴子分香蕉
🔎题目
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
5 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第 1 只猴子醒来,把香蕉均分成 5 堆,还剩下 1个,就吃掉并把自己的一份藏起来继续睡觉。
第 2 只猴子醒来,把香蕉均分成 5 堆,还剩下 2 个,就吃掉并把自己的一份藏起来继续睡觉。
第 3 只猴子醒来,把香蕉均分成 5 堆,还剩下 3 个,就吃掉并把自己的一份藏起来继续睡觉。
第 4 只猴子醒来,把香蕉均分成 5 堆,还剩下 4 个,就吃掉并把自己的一份藏起来继续睡觉。
第 5 猴子醒来,重新把香蕉均分成 5 堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
📖题解
难度系数:⭐
考察题型:填空题, 2018, 国赛
涉及知识点:数论-基础
🍞代码
#数论-猴子分香蕉
for i in range(1,10000): #枚举香蕉数
t=i #临时变量t=i
if (t-1)%5==0: #吃掉1个香蕉,还能被均分成5堆
t=0.8*(t-1) #剩下的香蕉总数
if (t-2)%5==0:
t=0.8*(t-2)
if (t-3)%5==0:
t=0.8*(t-3)
if (t-4)%5==0:
t=0.8*(t-4)
if t%5==0:
print(i) #16 3141 6266 9391
#print(3141)
🏆真题Ⅱ:等差数列
🔎题目
数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N 个整数。
现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?
输入描述
输出描述
输出一个整数表示答案。
输入
5
2 6 4 10 20
输出
10
📖题解
难度系数:⭐⭐
考察题型:数学, 2019, 省赛
涉及知识点:数论-全排列
🍞代码
#数论-等差数列
n=int(input()) #5
a=sorted(list(map(int,input().split()))) #a=[2, 4, 6, 10, 20]
minx=float("inf") #最小公差初始化
for i in range(len(a)-1): #0 1 2 3 4
if a[i+1]-a[i]<minx: #寻找最小公差
minx=a[i+1]-a[i]
if minx==0: #特殊情况公差为0
print(len(a)) #a=[1,1,1] 3
else: #公差不为0
cnt=1
for i in range(a[0],a[-1],minx): #遍历数列
cnt+=1 #计数
print(cnt) #10
🏆真题Ⅲ:平方序列
🔎题目
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明想找到两个正整数 XX 和 YY,满足
请你求出在所有可能的解中,X + Y 的最小值是多少?
📖题解
难度系数:⭐
考察题型:填空题, 2019, 国赛
涉及知识点:数论-等差数列
🍞代码
#数论-平方序列
for x in range(2020,10000):
for y in range(2021,10000):
if 2019<x<y and 2*x*x==y*y+2019*2019:
print(x+y)#7020 14190
#print(7020)
🏆真题Ⅳ:倍数问题
🔎题目
众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。
输入描述
输出描述
输出一行一个整数代表所求的和。
输入
4 3
1 2 3 4
输出
9
📖题解
难度系数:⭐⭐⭐
考察题型:数论, 构造, 2018, 省赛
涉及知识点:数论-倍数
🍞代码
#数论-倍数问题-暴力枚举版
from itertools import combinations #组合数函数
n,k=map(int,input().split()) #n=4 k=3
a=list(map(int,input().split())) #a=[1,2,3,4]
maxsum=0
for i in combinations(a,3): #i=(1, 2, 3)
cnt=i[0]+i[1]+i[2] #2+3+4
if cnt%k==0: #9%3==0
if cnt>maxsum: #9>6
maxsum=cnt #9
print(maxsum) #9
满分思路可参考:蓝桥冲刺31天,第五天java打卡_小怂很怂的博客-CSDN博客