当前位置:首页>python>【第38期】21天养成编程习惯:Python刷题第18天

【第38期】21天养成编程习惯:Python刷题第18天

  • 2026-09-02 18:51:42
【第38期】21天养成编程习惯:Python刷题第18天

跟老马一起“升级打怪”学编程!

  • 涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试
  • 活动内容:提供不同等级的真题供小朋友们选择练习
  • 备考建议:根据自己备考的等级选择相应题目
  • 附加价值:可作为白名单比赛的备考训练
  • 本月打卡:本月GESP_Python打卡题目

Day18:GESP一级2023.03_鸡兔同笼

【问题描述】

利用 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))

Day18:GESP二级2023.03_字母阵列

【问题描述】

输入一个正整数 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)

Day18:GESP三级2024.06_寻找倍数

【提交】

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")

Day18:GESP四级2025.06_画布裁剪

【提交】

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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章