涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月GESP_Python打卡题目
【问题描述】
利用 input() 语句先后输入两个正整数,分别代表鸡兔的头和脚的总数。其中,兔有四只脚,鸡有两只脚,都只有一个头。
请编写 Python 代码计算出兔和鸡的数量,输出结果形如“Chicken=15 Rabbit=5”,如没有解则输出“No solution!”。
【输入描述】
分两次输入,第一次输入头的总数,回车后输入脚的总数。
特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有input()函数不可有提示信息。
【输出描述】
如果有解,则输出鸡和兔分别数量,形如“Chicken=15 Rabbit=5”Rabbit之前有 1 个英文半角空格,C 和 R 都为大写。
如没有解则输出“No solution!”,No 之后有 1 个英文半角空格,solution 之后有英文半角叹号。
特别提示:注意字母大小写以及空格、叹号等匹配一致。
【样例输入 1】
2050【样例输出 1】
Chicken=15 Rabbit=5【样例输入 2】
2030【样例输出 2】
No solution!参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
方法一:
head = int(input())foot = int(input())i = 0num = 0while i <= head:if i * 2 + (head - i) * 4 == foot: print("Chicken={} Rabbit={}".format(i, head - i)) num += 1 i += 1if num == 0: print("No solution!")方法二:
head = int(input())foot = int(input())R = (foot - 2 * head) / 2C = head - Rif R < 0or int(R) != R: print('No solution!')else: C = int(C) R = int(R) print("Chicken={} Rabbit={}".format(C, R))【问题描述】
输入一个正整数 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/B4004
【问题描述】
小杨有一个包含 个正整数的序列 ,他想知道是否存在 使得 是序列 中所有数的倍数。
【输入描述】
第一行包含一个正整数 ,代表测试用例组数。
接下来是 组测试用例。
对于每组测试用例,一共两行。其中,第一行包含一个正整数 ;第二行包含 个正整数,代表序列 。
【输出描述】
对于每组测试用例,如果存在 满足对于所有 是 的倍数,输出 Yes,否则输出 No。
【样例输入1】
231 2 451 2 3 4 5【样例输出1】
YesNo【样例解释】
对于第一组数据,对于 ,满足 是 和 的倍数。
【数据范围】
对于全部数据,保证有 ,,。
参考程序:
'''GESP:2024.06三级 寻找倍数https://www.luogu.com.cn/problem/B4004'''t = int(input())for _ in range(t): n = int(input()) lst = list(map(int, input().split())) max_ = max(lst)if sum([max_ % i for i in lst]) == 0: print("Yes")else: print("No")【提交】
https://www.luogu.com.cn/problem/B4360
【问题描述】
小 A 在高为 宽为 的矩形画布上绘制了一幅画。由于画布边缘留白太多,小 A 想适当地裁剪画布,只保留画的主体。具体来说,画布可以视为 行 列的字符矩阵,其中的字符均为 ASCII 码位于 之间的可见字符,小 A 只保留画布中由第 行到第 行、第 列到第 列构成的子矩阵。
小 A 将画布交给了你,你能帮他完成画布的裁剪吗?
【输入描述】
第一行,两个正整数 ,分别表示画布的行数与列数。
第二行,四个正整数 ,表示保留的行列边界。
接下来 行,每行一个长度为 的字符串,表示画布内容。
【输出描述】
输出共 行,每行一个长度为 的字符串,表示裁剪后的画布。
【样例输入1】
3 52 2 2 4......>_<......【样例输出1】
>_<【样例输入2】
5 51 2 3 4AbCdEfGhIkLmNoPqRsTuVwXyZ【样例输出2】
CdhI【数据范围】
对于所有测试点,保证 ,,。
参考程序:
方法一:
'''[GESP202506 四级] 画布裁剪https://www.luogu.com.cn/problem/B4360'''h, w = tuple(map(int, input().split()))x1, x2, y1, y2 = tuple(map(int, input().split()))lst = []for i in range(h): lst.append(list(input().strip()))for i in range(x1 - 1, x2):for j in range(y1 - 1, y2): print(lst[i][j], end="") print()方法二:
'''[GESP202506 四级] 画布裁剪https://www.luogu.com.cn/problem/B4360'''h, w = tuple(map(int, input().split()))x1, x2, y1, y2 = tuple(map(int, input().split()))lst = [input().strip() for _ in range(h)]for i in range(x1 - 1, x2): print(lst[i][y1 - 1:y2])青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
