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

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

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

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

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

Day11:GESP一级2023.09_买文具

【提交】

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

【问题描述】

开学了,小明来到文具店选购文具。签字笔2元一支,他需要支;记事本5元一本,他需要本;直尺3元一把,他需要把。小明手里有元钱。请你通过编程帮小明算算,他手里的钱是否够买他需要的文具。

【输入描述】

输入4行。

第一行包含一个正整数,是小明购买签字笔的数量。约定 。

第二行包含一个正整数,是小明购买记事本的数量。约定 。

第三行包含一个正整数,是小明购买直尺的数量。约定 。

第四行包含一个正整数,是小明手里的钱数(单位:元)。

【输出描述】

输出2行。如果小明手里的钱够买他需要的文具,则第一行输出"Yes",第二行输出小明会剩下的钱数(单位:元);否则,第一行输出"No",第二行输出小明缺少的钱数(单位:元)。

【样例输入1】

11120

【样例输出1】

Yes10

【样例输入2】

1115

【样例输出2】

No5

参考程序:

'''[GESP202309 一级] 买文具https://www.luogu.com.cn/problem/B3863'''x = int(input())y = int(input())z = int(input())q = int(input())s = q - (2*x+5*y+3*z) if s>=0:    print("Yes")    print(s)else:    print("No")    print(-1*s)

Day11:GESP二级2025.12_黄金格

【提交】

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

【问题描述】

小杨在探险时发现了一张神奇的矩形地图,地图有  行和  列。每个格子的坐标是 ,其中  表示行号从  到 , 表示列号  到 。

小杨听说地图中隐藏着一些“黄金格”,这些格子满足一个神秘的数学挑战:当格子坐标  代入特定的不等式关系成立时,该格子就是黄金格。具体来说,黄金格的条件是: 。

例如,如果参数  ,那么格子  就是黄金格。因为左边坐标平方和的平方根  算出来是 ,而右边  算出来是 , 小于等于 ,符合条件。

【输入描述】

三行,每行一个正整数,分别表示 。含义如题面所示。

【输出描述】

一行一个整数,代表黄金格数量。

【样例输入1】

442

【样例输出1】

4

【样例解释】

图中标注为黄色的四个格子是黄金格,坐标分别为 ,,,。

【数据范围】

对于所有测试点,保证给出的正整数不超过 。

参考程序:

'''[GESP202512 二级] 黄金格https://www.luogu.com.cn/problem/B4448'''import mathH = int(input())W = int(input())x = int(input())cnt = 0for r in range(1, H + 1):for c in range(1, W + 1):if math.sqrt(r ** 2 + c ** 2) <= x + r - c:            cnt += 1print(cnt)

Day11:GESP三级2024.03_完全平方数

【提交】

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

【问题描述】

小杨同学有一个包含  个非负整数的序列 ,他想要知道其中有多少对下标组合 ,使得  是完全平方数。

如果  是完全平方数,则存在非负整数  使得 。

【输入描述】

第一行一个非负整数 ,表示非负整数个数。

第二行包含  个非负整数 ,表示序列  包含的非负整数。

【输出描述】

输出一个非负整数,表示和是完全平方数的非负整数对数。

【样例输入1】

51 4 3 3 5

【样例输出1】

3

【样例输入2】

23 5

【样例输出2】

0

对于全部数据,保证有 。

参考程序:

'''[GESP202403 三级] 完全平方数https://www.luogu.com.cn/problem/B3957'''n = int(input())A = list(map(int, input().split()))ans = 0for i in range(n):for j in range(i + 1, n):        num = A[i] + A[j]        tmp = int(num ** 0.5 + 1e-6)if tmp * tmp == num:            ans += 1print(ans)

Day11:GESP四级2025.12_建造

【提交】

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

【问题描述】

小 A 有一张  行  列的地形图,其中第  行第  列的数字  代表坐标 () 的海拔高度。

停机坪为一个  的区域且内部所有  个点的最大高度和最小高度之差不超过 。

小 A 想请你计算出,在所有适合建造停机坪的区域中,区域内部  个点海拔之和最大是多少。

【输入描述】

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

之后  行,第  行包含  个整数 ,代表坐标 () 的高度。

数据保证总存在一个适合建造停机坪的区域。

【输出描述】

输出一行,代表最大的海拔之和。

【样例输入1】

5 5 35 5 5 5 55 1 5 1 55 5 5 5 55 2 5 2 53 5 5 5 2

【样例输出1】

40

【数据范围】

对于所有测试点,保证 。

参考程序:

'''[GESP202512 四级] 建造https://www.luogu.com.cn/problem/B4451'''# 读取第一行输入:地图行数M,列数N,最大允许高度差HM, N, H = list(map(int, input().split()))# 读取地形图数据,创建M行N列的二维列表aa = [list(map(int, input().split())) for _ in range(M)]max_sum = 0# 遍历所有可能的3x3区域的左上角坐标for i in range(M - 2):for j in range(N - 2):# 提取当前3x3区域的所有9个元素# 使用 + 运算符将三个列表拼接成一个包含9个元素的列表 block        block = a[i][j:j + 3] + a[i + 1][j:j + 3] + a[i + 2][j:j + 3]if max(block) - min(block) <= H:            max_sum = max(max_sum, sum(block))print(max_sum)

青少年编程竞赛交流

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

最新文章

随机文章