涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:八月GESP_Python打卡题目 “Python一级”备考指南 “Python二级”备考指南 “Python三级”备考指南 “Python四级”备考指南
【提交】
https://www.luogu.com.cn/problem/B4063
【问题描述】
小杨有 个正整数,他想知道其中的奇数有多少个,偶数有多少个。
【输入描述】
第一行包含一个正整数 ,代表正整数个数。
之后 行,每行包含一个正整数。
【输出描述】
输出两个正整数(用英文空格间隔),代表奇数的个数和偶数的个数。如奇数或偶数的个数为0,则对应输出0。
【样例输入1】
512345【样例输出1】
3 2【数据范围】
对于全部数据,保证有 且正整数大小不超过 。
参考程序:
'''[GESP202412 一级] 奇数和偶数https://www.luogu.com.cn/problem/B4063'''n = int(input())k1, k2 = 0, 0for i in range(n): x = int(input())if x % 2 == 1: k1 += 1else: k2 += 1print("{0} {1}".format(k1, k2))【问题描述】
输入一个正整数 N,输出 N 行 N 列字母,字母为大写英文字母,执行效果如下。输入正整数 27,输出 27 行字母,每行 27 个字母。第一行从A 开始,第二行 B 开始。当到达 Z,再从 A 开始。

【输入描述】
输入一行,一个大于等于 1 的正整数 N。
【输出描述】
输出上图所示的字母阵列。
【样例输入 1】
5【样例输出 1】
ABCDEBCDEFCDEFGDEFGHEFGHI【样例输入 2】
10【样例输出 2】
ABCDEFGHIJBCDEFGHIJKCDEFGHIJKLDEFGHIJKLMEFGHIJKLMNFGHIJKLMNOGHIJKLMNOPHIJKLMNOPQIJKLMNOPQRJKLMNOPQRS参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"N = int(input())c = 0for i in range(N): s = '' k = cfor j in range(N): s += str[k % 26] k += 1 c = (c + 1) % 26 print(s)【提交】
https://www.luogu.com.cn/problem/B3957
【问题描述】
小杨同学有一个包含 个非负整数的序列 ,他想要知道其中有多少对下标组合 ,使得 是完全平方数。
如果 是完全平方数,则存在非负整数 使得 。
【输入描述】
第一行一个非负整数 ,表示非负整数个数。
第二行包含 个非负整数 ,表示序列 包含的非负整数。
【输出描述】
输出一个非负整数,表示和是完全平方数的非负整数对数。
【样例输入1】
51 4 3 3 5【样例输出1】
3【样例输入2】
23 5【样例输出2】
0对于全部数据,保证有 。
参考程序:
'''[GESP202403 三级] 完全平方数https://www.luogu.com.cn/problem/B3957'''n = int(input())A = list(map(int, input().split()))ans = 0for i in range(n):for j in range(i + 1, n): num = A[i] + A[j] tmp = int(num ** 0.5 + 1e-6)if tmp * tmp == num: ans += 1print(ans)【提交】
https://www.luogu.com.cn/problem/B4451
【问题描述】
小 A 有一张 行 列的地形图,其中第 行第 列的数字 代表坐标 () 的海拔高度。
停机坪为一个 的区域且内部所有 个点的最大高度和最小高度之差不超过 。
小 A 想请你计算出,在所有适合建造停机坪的区域中,区域内部 个点海拔之和最大是多少。
【输入描述】
第一行三个正整数 ,含义如题面所示。
之后 行,第 行包含 个整数 ,代表坐标 () 的高度。
数据保证总存在一个适合建造停机坪的区域。
【输出描述】
输出一行,代表最大的海拔之和。
【样例输入1】
5 5 35 5 5 5 55 1 5 1 55 5 5 5 55 2 5 2 53 5 5 5 2【样例输出1】
40【数据范围】
对于所有测试点,保证 。
参考程序:
'''[GESP202512 四级] 建造https://www.luogu.com.cn/problem/B4451'''# 读取第一行输入:地图行数M,列数N,最大允许高度差HM, N, H = list(map(int, input().split()))# 读取地形图数据,创建M行N列的二维列表aa = [list(map(int, input().split())) for _ in range(M)]max_sum = 0# 遍历所有可能的3x3区域的左上角坐标for i in range(M - 2):for j in range(N - 2):# 提取当前3x3区域的所有9个元素# 使用 + 运算符将三个列表拼接成一个包含9个元素的列表 block block = a[i][j:j + 3] + a[i + 1][j:j + 3] + a[i + 2][j:j + 3]if max(block) - min(block) <= H: max_sum = max(max_sum, sum(block))print(max_sum)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
