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

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

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

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

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

Day06:GESP一级2023.09_小明的幸运数

【提交】

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

【问题描述】

所有个位数为的正整数,以及所有的倍数,都被小明称为“幸运数”。小明想知道正整数和之间(包括和)所有幸运数的和,你能帮帮他吗?

【输入描述】

输入3行。第一行包含一个正整数,第二行包含一个正整数,第三行包含一个正整数。约定,。

【输出描述】

输出1行,符合题意的幸运数之和。

【样例输入1】

7110

【样例输出1】

7

【样例解释1】

1和10之间共有1个7幸运数:7。因为7既是7的倍数,个位数⼜为7。因此,结果为7。

【样例输入2】

71020

【样例输出2】

31

【样例解释2】

10和20之间共有2个7幸运数:14和17。14是7的倍数,17的个位数为7。因此,结果为31。

参考程序:

方法一:

'''[GESP202309 一级] 小明的幸运数https://www.luogu.com.cn/problem/B3864'''k = int(input())L = int(input())R = int(input())s = 0for i in range(L, R + 1):if i % 10 == k or i % k == 0:        s += iprint(s)

方法二:

'''[GESP202309 一级] 小明的幸运数https://www.luogu.com.cn/problem/B3864'''k = int(input())L = int(input())R = int(input())lst = [i for i in range(L, R + 1) if i % 10 == k or i % k == 0]print(sum(lst))

Day06:GESP二级2025.09_优美的数字

【提交】

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

【问题描述】

如果一个正整数在十进制下的所有数位都相同,小 A 就会觉得这个正整数很优美。例如,正整数  的数位都是 ,所以  是优美的。正整数  的数位都是 ,所以  是优美的。正整数  的数位不都相同,所以  并不优美。

小 A 想知道不超过  的正整数中有多少优美的数字。你能帮他数一数吗?

【输入描述】

一行,一个正整数 。

【输出描述】

一行,一个正整数,表示不超过  的优美正整数的数量。

【样例输入1】

6

【样例输出1】

6

【样例输入2】

2025

【样例输出2】

28

【数据范围】

对于所有测试点,保证 。

参考程序:

'''[GESP202509 二级] 优美的数字https://www.luogu.com.cn/problem/B4411'''n = int(input())cnt = 0for i in range(1, n + 1):    k, p = i % 10, i // 10while p > 0:if k != p % 10:break        p //= 10if p == 0:        cnt += 1print(cnt)

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

Day06:GESP四级2024.06_黑白方块

【提交】

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

【问题描述】

小杨有一个  行  列的网格图,其中每个格子要么是白色,要么是黑色。

对于网格图中的一个子矩形,小杨认为它是平衡的当且仅当其中黑色格子与白色格子数量相同。

小杨想知道最大的平衡子矩形包含了多少个格子。

【输入描述】

第一行包含两个正整数 ,含义如题面所示。

之后  行,每行一个长度为  的  串,代表网格图第  行格子的颜色,如果为 ,则对应格子为白色,否则为黑色。

【输出描述】

输出一个整数,代表最大的平衡子矩形包含格子的数量,如果不存在则输出 。

【样例输入1】

4 500000011110001100011

【样例输出1】

16

【样例解释】

对于样例1,假设 () 代表第  行第  列,最大的平衡子矩形的四个顶点分别为 ,,,。

【数据范围】

对于全部数据,保证有 。

参考程序:

'''2024年06月C++四级试卷https://www.luogu.com.cn/problem/B4005'''N = 55w = [[0] * N for _ in range(N)]defcheck(xa, ya, xb, yb):    a = [0, 0]for i in range(xa, xb + 1):for j in range(ya, yb + 1):            a[w[i][j]] += 1return a[0] == a[1]n, m = map(int, input().split())for i in range(1, n + 1):    s = input()for j in range(1, m + 1):        w[i][j] = int(s[j - 1])ans = 0for i in range(1, n + 1):for j in range(1, m + 1):for ii in range(i, n + 1):for jj in range(j, m + 1):if check(i, j, ii, jj):                    ans = max(ans, (ii - i + 1) * (jj - j + 1))print(ans)

青少年编程竞赛交流

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

最新文章

随机文章