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

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

  • 2026-10-11 05:44:14
【第40期】21天养成编程习惯:Python刷题第05天

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

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

Day05: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))

Day05:GESP二级2024.06_计数

【提交】

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)

Day05:GESP三级2024.06_移位

【提交】

https://www.luogu.com.cn/problem/B4003

【问题描述】

小杨学习了加密技术移位,所有大写字母都向后按照一个固定数目进行偏移。偏移过程会将字母表视作首尾相接的环,例如,当偏移量是3的时候,大写字母 A 会替换成 D,大写字母 Z 会替换成 C,总体来看,大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 会被替换成 DEFGHIJKLMNOPQRSTUVWXYZABC。

注:当偏移量是26的倍数时,每个大写字母经过偏移后会恰好回到原来的位置,即大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 经过偏移后会保持不变。

【输入描述】

第一行包含一个正整数 。

【输出描述】

输出在偏移量为  的情况下,大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 移位替换后的结果。

【样例输入1】

3

【样例输出1】

DEFGHIJKLMNOPQRSTUVWXYZABC

【样例解释】

当偏移量是3的时候,大写字母 A 会替换成 D,大写字母 Z 会替换成 C,总体来看,大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 会被替换成 DEFGHIJKLMNOPQRSTUVWXYZABC。

【数据范围】

对于全部数据,保证有 。

参考程序:

'''GESP202406 三级 移位https://www.luogu.com.cn/problem/B4003'''s = "".join([chr(ord("A") + i) for i in range(26)])n = int(input()) % 26print(s[n:] + s[:n])

Day05:GESP四级2026.03_山之谷

【提交】

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

最新文章

随机文章