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

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

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

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


Day08:GESP一级2025.12_手机电量显示

【提交】

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

【问题描述】

小杨的手机就像一个聪明的小助手,当电量变化时,它会用不同的方式来提醒我们,假设当前的电量百分比为 :

  • 当电量非常低(不超过 10,即 ),它会显示一个大写字母 R,就像在说:“快给我充电吧!(Red 警告色)”
  • 当电量有点低(超过 10 但不超过 20,即 ),它会显示一个大写字母 L,意思是“电量有点 Low 啦!”
  • 当电量比较充足(超过 20,即 ),它就会直接显示具体的数字,比如直接显示 50,表示还有 50 的电量。

【输入描述】

第一行一个正整数 ,代表数据组数。

对于每组数据,一行包含一个正整数 ,代表手机电量百分比。

【输出描述】

对于每组数据,输出一行,代表当前手机显示的电量信息。

【样例输入1】

5101209919

【样例输出1】

RRL99L

【样例解释】

输入样例 1 共有五组数据:

  • 第一组数据手机电量 ,满足 ,电量非常低,显示 R。
  • 第二组数据手机电量 ,满足 ,电量非常低,显示 R。
  • 第三组数据手机电量 ,满足 ,电量有点低,显示 L。
  • 第四组数据手机电量 ,满足 ,电量比较充足,直接显示具体的数字 。
  • 第五组数据手机电量 ,满足 ,电量有点低,显示 L。

【数据范围】

对于所有测试点,保证 ,。

参考程序:

''' [GESP202512 一级] 手机电量显示 https://www.luogu.com.cn/problem/B4446'''T = int(input())for _ in range(T):    p = int(input())if p <= 10:        print("R")elif p <= 20:        print("L")else:        print(p)

Day08:GESP二级2024.12_数位和

【提交】

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

【问题描述】

小杨有  个正整数,小杨想知道这些正整数的数位和中最大值是多少。

“数位和”指的是一个数字中所有数位的和。

例如:

对于数字 ,它的各个数位分别是 , , , , 。将这些数位相加,得到:

因此, 的数位和是 。

【输入描述】

第一行包含一个正整数 ,代表正整数个数。

之后  行,每行包含一个正整数。

【输出描述】

输出这些正整数的数位和的最大值。

【样例输入1】

3168110

【样例输出1】

9

【数据范围】

对于全部数据,保证有 ,每个正整数不超过 。

参考程序:

'''[GESP202412 二级] 数位和https://www.luogu.com.cn/problem/B4065'''n = int(input())result = 0for i in range(n):    x = int(input())    k = 0while x > 0:        k += x % 10        x = x // 10if k > result:        result = kprint(result)

Day08:GESP三级2023.12_小猫分鱼

【提交】

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

【问题描述】

海滩上有一堆鱼, 只小猫来分。第一只小猫把这堆鱼平均分为份,多了个,这只小猫把多的个扔入海中,拿走了一份。第二只小猫接着把剩下的鱼平均分成份,又多了个,小猫同样把多的个扔入海中,拿走了一份。第三、第四、……,第只小猫仍是最终剩下的鱼分成份,扔掉多了的个,并拿走一份。

编写程序,输入小猫的数量以及每次扔到海里的鱼的数量,输出海滩上最少的鱼数,使得每只小猫都可吃到鱼。

例如:两只小猫来分鱼,每次扔掉鱼的数量为,为了每只小猫都可吃到鱼,可令第二只小猫需要拿走1条鱼,则此时待分配的有3条鱼。第一只小猫待分配的鱼有条。

【输入描述】

总共 2 行。第一行一个整数 ,第二行一个整数 。

保证 ;。

【输出描述】

一行一个整数,表示满足要求的海滩上最少的鱼数。

【特别提醒】

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

【样例输入1】

21

【样例输出1】

7

【样例输入2】

31

【样例输出2】

25

【样例解释2】

三只小猫来分鱼,每次扔掉鱼的数量为,为了每只小猫都可吃到鱼,可令第三只小猫需要拿走3条鱼(拿走1条和2条不满足要求),则此时待分配的有10条鱼。第二只小猫待分配的鱼有条。第一只小猫待分配的鱼有条。

参考程序:

'''[GESP202312 三级] 小猫分鱼https://www.luogu.com.cn/problem/B3925'''n = int(input())i = int(input())k = 1whileTrue:    ans = k * n + ifor j in range(1, n):if ans % (n - 1) != 0:            flag = Falsebreak        ans = ans // (n - 1) * n + ielse:break    k += 1print(ans)

Day08:GESP四级2026.03_礼盒排序

【提交】

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

【问题描述】

商店推出了许多礼盒,每个礼盒中包含  件商品,每件商品都有一个价格。

现在需要对这些礼盒进行排序,排序规则如下:

  1. 先按 礼盒总价格从小到大 排序;
  2. 如果总价格相同,按 礼盒中最贵商品的价格从小到大 排序;
  3. 如果仍然相同,按 礼盒中最便宜商品的价格从小到大 排序;
  4. 如果仍然相同,按 礼盒编号从小到大 排序。

请输出排序后的礼盒编号。

【输入描述】

第一行包含两个整数  和 ,分别表示礼盒数量和每个礼盒中商品的数量。

接下来  行,每行包含  个整数,第  行表示第  个礼盒中各商品的价格。

【输出描述】

输出一行,包含排序后的礼盒编号(编号从  开始),用空格分隔。

【样例输入1】

4 33 5 24 1 52 2 43 4 3

【样例输出1】

3 4 2 1

【样例解释】

4 个礼盒分别为:

编号
商品价格
总价
最大值
最小值
1
3 5 2
10
5
2
2
4 1 5
10
5
1
3
2 2 4
8
4
2
4
3 4 3
10
4
3

排序过程:

  1. 按总价排序,3号礼盒总价最小;
  2. 其余总价均为 10,再按最大值排序,4号最大值更小;
  3. 1号和2号最大值相同,再按最小值排序,2号更小。

最终顺序为:3 4 2 1

【数据范围】

保证 ,,商品价格 。

参考程序:

'''[GESP202603 四级] 礼盒排序https://www.luogu.com.cn/problem/B4502'''n, k = tuple(map(int, input().split()))lst = []for i in range(1, n + 1):    d = list(map(int, input().split()))    lst.append([sum(d), max(d), min(d), i])lst.sort()result = " ".join([str(i[3]) for i in lst])print(result)

青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章