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

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

  • 2026-09-09 01:31:16
【第40期】21天养成编程习惯:Python刷题第19天

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

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

Day19:GESP一级2025.03_四舍五入

【提交】

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

【问题描述】

四舍五入是一种常见的近似计算方法。现在,给定  个整数,你需要将每个整数四舍五入到最接近的整十数。例如, 四舍五入后为 , 四舍五入后为 。

【输入描述】

共两行,第一行,一个整数 ,表示接下来输入的整数个数。

接下来  行,每行一个整数 ,表示需要四舍五入的整数。

【输出描述】

 行,每行一个整数,表示每个整数四舍五入后的结果,整数之间用空格分隔。

【样例输入1】

54358256790

【样例输出1】

4060307090

【数据范围】

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

参考程序:

'''[GESP202503 一级] 四舍五入https://www.luogu.com.cn/problem/B4258'''n = int(input())for _ in range(n):    x = int(input())    print(int(x / 10+0.5) * 10)

Day19:GESP二级2023.09_小杨的 X 字矩阵

【提交】

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

【问题描述】

小杨想要构造一个的  字矩阵(为奇数),这个矩阵的两条对角线都是半角加号 +,其余都是半角减号-。例如,一个的 字矩阵如下:

+---+-+-+---+---+-+-+---+

请你帮小杨根据给定的打印出对应的“字矩阵”。

【输入描述】

一行一个整数(,保证为奇数)。

【输出描述】

输出对应的“字矩阵”。

请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出行,每行除了换行符外恰好包含个字符,这些字符要么是 + ,要么是 - 。

【特别提醒】

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

【样例输入1】

5

【样例输出1】

+---+-+-+---+---+-+-+---+

【样例输入2】

7

【样例输出2】

+-----+-+---+---+-+-----+-----+-+---+---+-+-----+

参考程序:

'''[GESP202309 二级] 小杨的 X 字矩阵https://www.luogu.com.cn/problem/B3865'''N = int(input())for i in range(N):for j in range(N):if j == i or i + j == N - 1:            print("+", end="")else:            print("-", end="")    print()

Day19: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 = 1while True:    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)

Day19:GESP四级2024.06_宝箱

【提交】

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

【问题描述】

小杨发现了  个宝箱,其中第  个宝箱的价值是 。

小杨可以选择一些宝箱放入背包并带走,但是小杨的背包比较特殊,假设小杨选择的宝箱中最大价值为 ,最小价值为 ,小杨需要保证 ,否则小杨的背包会损坏。

小杨想知道背包不损坏的情况下,自己能够带走宝箱的总价值最大是多少。

【输入描述】

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

第二行包含  个正整数 ,代表宝箱的价值。

【输出描述】

输出一个整数,代表带走宝箱的最大总价值。

【样例输入1】

5 11 2 3 1 2

【样例输出1】

7

【样例解释】

在背包不损坏的情况下,小杨可以拿走两个价值为  的宝箱和一个价值为  的宝箱。

【数据范围】

对于全部数据,保证有 。

参考答案:

'''[GESP202406 四级] 宝箱https://www.luogu.com.cn/problem/B4006'''deffunc(index):    max_ = lst[index]    total = max_for j in range(index - 1, -1, -1):if max_ - lst[j] <= k:            total += lst[j]else:breakreturn totaln, k = map(int, input().split())lst = sorted(map(int, input().split()))result = 0for i in range(n - 1, -1, -1):    a = func(i)if a > result:        result = aprint(result)

青少年编程竞赛交流

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

最新文章

随机文章