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

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

  • 2026-10-11 06:45:00
【第40期】21天养成编程习惯:Python刷题第16天

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

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

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

Day16:GESP二级2025.09_菱形

【提交】

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

【问题描述】

小 A 想绘制一个菱形。具体来说,需要绘制的菱形是一个  行  列的字符画, 是一个大于  的奇数。菱形的四个顶点依次位于第  行、第  列、第  行、第  列的正中间,使用 # 绘制。相邻顶点之间也用 # 连接。其余位置都是 .。例如,一个  行  列的菱形字符画是这样的:

..#...#.#.#...#.#.#...#..

给定 ,请你帮小 A 绘制对应的菱形。

【输入描述】

一行,一个正整数 。

【输出描述】

输出共  行,表示对应的菱形。

【样例输入1】

3

【样例输出1】

.#.#.#.#.

【样例输入2】

9

【样例输出2】

....#.......#.#.....#...#...#.....#.#.......#.#.....#...#...#.....#.#.......#....

【数据范围】

对于所有测试点,保证  并且  为奇数。

参考程序:

'''[GESP202509 二级] 菱形https://www.luogu.com.cn/problem/B4412'''n = int(input())center_x, center_y = n // 2, n // 2for i in range(n):for j in range(n):if abs(i - center_x) + abs(j - center_y) == n // 2:            print("#", end='')else:            print(".", end='')    print()

Day16:GESP三级2025.03_2025

【提交】

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

【问题描述】

小 A 有一个整数 ,他想找到最小的正整数  使得下式成立:

其中  表示二进制按位与运算, 表示二进制按位或运算。如果不存在满足条件的 ,则输出 。

【输入描述】

一行,一个整数 。

【输出描述】

一行,一个整数,若满足条件的  存在则输出 ,否则输出 。

【样例输入1】

1025

【样例输出1】

1000

【数据范围】

对于所有测试点,保证 。

【提示】

其中:

  •  表示按位与运算,运算符为 &。
  •  表示按位或运算,运算符为 |。

参考程序:

'''[GESP202503 三级] 2025https://www.luogu.com.cn/problem/B4261'''x = int(input())print(2025 - x)

Day16:GESP四级2023.06_幸运数

【提交】

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

【问题描述】

变化正整数的各个奇数位(从右到左,个位为第 1 位,奇数,16347),变化的规则是乘以 7,如果该奇数位与 7 相乘的结果大于 9 则各位数相加,如相加结果仍然大于 9 则继续各位数相加,直到结果不大于 9;如果该奇数位与 7 相乘的结果不大于 9 则该数为该奇数位变化结果。偶数位不发生变化。各个奇数位变化完毕后,将新数的各位数相加,如果相加之和是 8 的整数倍,则为幸运数;

例如 16347,第 1 位 7 奇数位,乘以 7 结果为 49,大于 9 各位数相加为 13 大于 9 继续各位数相加最后结果为 4;然后变化第 3 位 3,第 5 位 1。最后变化结果为 76344,对于结果 76344 其各位数之和为 24,是 8 的倍数,为幸运数;

首先输入 ,随后输入  行正整数。输出  行,对应  个正整数是否为幸运数,如是则输出  否则 。

【输入描述】

首先输入正整数  随后输入  行正整数,每行一个数。不考虑输入不合规情形,负数、负整数、非数字构成的字符串等。

特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有input()函数不可有提示信息。

【输出描述】

输出  行,对应  个正整数是否为幸运数,如是则输出  否则 。

特别提示:注意输出字母为英文大写,小写或其他将判为错误。

【样例输入1】

21634776344

【样例输出1】

TF

参考程序:

'''[GESP202306 四级] 幸运数https://www.luogu.com.cn/problem/B3850'''N = int(input())  # 确定将输入N个数for i in range(N):    M = int(input())  # 输入的数存入M    tnt = 0# 各位数相加之和    loc = 0# 位置while M != 0:        loc += 1if loc % 2 == 1:            tmp = M % 10 * 7while tmp > 9:                tmp = tmp // 10 + tmp % 10            tnt += tmpelse:            tnt += M % 10        M //= 10if tnt % 8 == 0:        print("T")else:        print("F")

青少年编程竞赛交流

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

最新文章

随机文章