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

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

  • 2026-10-11 07:04:30
【第42期】21天养成编程习惯:Python刷题第06天

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


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

Day06:GESP二级2026.03_数数

【提交】

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

【问题描述】

对于正整数 ,如果  的所有数位中包含恰好 个 ,Alice 会认为这个正整数是美丽的。例如,正整数  中包含  个 ,所以 是美丽的;正整数  中包含  个 ,所以 不是美丽的;正整数  中包含  个 ,所以 不是美丽的。

Alice 想知道正整数  到正整数  (包括  和 )中有多少美丽的正整数,你能帮她数一数吗?

【输入描述】

输入共  行,第一行为正整数 ,第二行为正整数 。

【输出描述】

输出一行,包含一个整数 ,表示  到  中  美丽数的数量。

【样例输入1】

22212223

【样例解释】

 到  中, 与  是美丽的, 不是美丽的。

【数据范围】

保证 。

参考程序:

'''[GESP202603 二级] 数数https://www.luogu.com.cn/problem/B4497'''L = int(input())R = int(input())ans = 0for i in range(L, R + 1):    k = i    cnt = 0while k != 0:if k % 10 == 2:            cnt += 1        k = k // 10if cnt == 3:        ans += 1print(ans)

Day06:GESP三级2024.09_回文拼接

【提交】

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

【问题描述】

一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如, 和  都是回文串,但  不是。

小杨有  个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为  的回文串前后拼接而成。

【输入描述】

第一行包含一个正整数 ,代表字符串数量。

之后  行每行一个仅包含小写字母的字符串。

【输出描述】

对于每个字符串输出一行,如果该字符串由两个长度至少为  的回文串前后拼接而成则输出 Yes,否则输出 No。

【样例输入1】

4abcdaabbbaaacabcdd

【样例输出1】

NoYesNoNo

【提示】

对于第  个字符串,都不是由两个长度至少为  的回文串前后拼接而成。

第  个字符串由回文串  和  前后拼接而成,并且两个回文串长度都至少为 。

对于全部数据,保证有 ,并且每个字符串的长度不超过 。

参考答案:

'''[GESP202409 三级] 回文拼接https://www.luogu.com.cn/problem/B4039'''n = int(input())for i in range(n):    s = input()    j = 1while j <= len(s) - 2:        s1 = s[:j]        s2 = s[j:]if s1 == s1[::-1] and s2 == s2[::-1]:            print("Yes")break        j += 1if j > len(s) - 2:        print("No")

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

最新文章

随机文章