涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:八月GESP_Python打卡题目 “Python一级”备考指南 “Python二级”备考指南 “Python三级”备考指南 “Python四级”备考指南
【提交】
https://www.luogu.com.cn/problem/B4035
【问题描述】
小杨有 个正整数,他认为一个正整数是美丽数字当且仅当该正整数是 的倍数但不是 的倍数。
小杨想请你编写一个程序计算 个正整数中美丽数字的数量。
【输入描述】
第一行包含一个正整数 ,代表正整数个数。
第二行包含 个正整数 。
【输出描述】
输出一个整数,代表其中美丽数字的数量。
【样例输入1】
31 9 72【样例输出1】
1【提示】
对于全部数据,保证有 。
参考答案:
'''[GESP202409 一级] 美丽数字https://www.luogu.com.cn/problem/B4035'''n = int(input())cnt = 0lst = map(int, input().split())for x in lst:if x % 9 == 0and x % 8 != 0: cnt += 1print(cnt)【提交】
https://www.luogu.com.cn/problem/B4007
【问题描述】
小杨认为自己的幸运数是正整数 (注:保证 )。小杨想知道,对于从 到 的所有正整数中, 出现了多少次。
【输入描述】
第一行包含一个正整数 。
第二行包含一个正整数 。
【输出描述】
输出从 到 的所有正整数中, 出现的次数。
【样例输入1】
252【样例输出1】
9【样例解释】
从 到 中, 出现的正整数有 ,一共出现了 次。
【数据范围】
对于全部数据,保证有 。
参考程序:
'''[GESP202406 二级] 计数https://www.luogu.com.cn/problem/B4007'''n = int(input())k = int(input())cnt = 0for i in range(1, n + 1): cnt += str(i).count(str(k))print(cnt)【提交】
https://www.luogu.com.cn/problem/B4262
【问题描述】
在文本处理中,统计单词出现的频率是一个常见的任务。现在,给定 个单词,你需要找出其中出现次数最多的单词。在本题中,忽略单词中字母的大小写(即 Apple、apple、APPLE、aPPle 等均视为同一个单词)。
请你编写一个程序,输入 个单词,输出其中出现次数最多的单词。
【输入描述】
第一行,一个整数 ,表示单词的个数;
接下来 行,每行包含一个单词,单词由大小写英文字母组成。
输入保证,出现次数最多的单词只会有一个。
【输出描述】
输出一行,包含出现次数最多的单词(输出单词为小写形式)。
【样例输入1】
6ApplebananaappleOrangebananaapple【样例输出1】
apple【数据范围】
对于所有测试点,,每个单词的长度不超过 ,且仅由大小写英文字母组成。
参考答案:
'''[GESP202503 三级] 词频统计https://www.luogu.com.cn/problem/B4262'''lst = []n = int(input())for _ in range(n): x = input() lst.append(x.lower())s = ""cnt = 0for i in lst: x = lst.count(i)if x > cnt: cnt = x s = iprint(s)【提交】
https://www.luogu.com.cn/problem/B4501
【问题描述】
现有一片山地,可以视为一个 行 列的网格图,第 行 列的海拔为 。
若一个单元格的海拔不高于其所有相邻(包括边相邻和顶点相邻,每个单元格至多有 8 个相邻的单元格)单元格的海拔,则称其为山谷。
请你数一数该片山地中有多少山谷。
【输入描述】
第一行包含 个整数 ,表示山地的大小。
之后 行,每行包含 个整数 ,表示海拔。
【输出描述】
输出 1 行,包含 1 个整数 ,表示山谷的数量。
【样例输入1】
3 57 6 7 7 96 5 6 7 66 5 7 8 9【样例输出1】
3【样例解释】
样例 1 如图所示,绿色单元格代表山谷:

【数据范围】
保证 ,。
参考程序:
''' [GESP202603 四级] 山之谷 https://www.luogu.com.cn/problem/B4501'''n, m = tuple(map(int, input().split()))lst = []for _ in range(n): d = list(map(int, input().split())) lst.append(d)dx = [-1, -1, -1, 0, 0, +1, +1, +1]dy = [-1, 0, +1, -1, +1, -1, 0, +1]cnt = 0for i in range(n):for j in range(m): flag = Truefor k in range(8): x, y = i + dx[k], j + dy[k]if x < 0or x > n - 1or y < 0or y > m - 1:continueif lst[i][j] > lst[x][y]: flag = Falsebreakif flag isTrue: cnt += 1print(cnt)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
