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

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

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

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

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

Day08:GESP一级2024.09_小杨购物

【提交】

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

【问题描述】

小杨有  元钱用于购物。商品  的单价是  元,商品  的单价是  元。小杨想购买 相同数量 的商品  和商品 。

请你编写程序帮小杨计算出他最多能够购买多少个商品  和商品 。

【输入描述】

第一行包含一个正整数 ,代表小杨用于购物的钱的金额。

第二行包含一个正整数 ,代表商品  的单价。

第三行包含一个正整数 ,代表商品  的单价。

【输出描述】

输出一行,包含一个整数,代表小杨最多能够购买的商品  和商品  的数量。

【样例输入1】

1212

【样例输出1】

4

【提示】

对于样例1,由于需要购买相同数量的两种商品,因此小杨最多能够购买  件商品  和  件商品 ,共花费  元。因此,样例1的答案为 。

【样例输入2】

1312

【样例输出1】

4

【提示】

对于样例2,由于需要购买相同数量的两种商品,因此小杨最多能够购买  件商品  和  件商品 ,共花费  元。如果小杨想购买  件商品  和  件商品 ,则需花费  元,超过了小杨的预算  元。因此,样例2的答案为 。

对于全部数据,保证有 。

参考程序:

'''GESP一级2024.09_小杨购物https://www.luogu.com.cn/problem/B4034'''n = int(input())a = int(input())b = int(input())print(n // (a + b))

Day08:GESP二级2025.12_环保能量球

【提交】

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

【问题描述】

小杨最近在玩一个环保主题的游戏。在游戏中,小杨每行走 1 公里就可以获得 1 点“环保能量”。

为了激励玩家,游戏设置了“里程奖励”:小杨每行走  公里,游戏就会额外奖励 1 点能量。

现在已知小杨总共行走了  公里,请你帮他计算,他一共能获得多少点环保能量?

【输入描述】

第一行包含一个正整数 ,代表测试数据组数。

对于每组测试数据:

  • 第一行包含一个正整数 ,代表行走的公里数。
  • 第二行包含一个正整数 ,代表奖励触发的间隔。

【输出描述】

对于每组测试数据,输出一个整数,代表小杨获得的环保能量总数。

【样例输入1】

35210325

【样例输出1】

7132

【样例解释】

  • 对于第 1 组数据,:小杨行走获得 5 点能量。此外,他在第 2 公里和第 4 公里时各获得 1 点额外奖励,总共  点。

  • 对于第 2 组数据,:行走获得 10 点。他在第 3、6、9 公里时各获得 1 点额外奖励,总共  点。

  • 对于第 3 组数据,:行走获得 2 点。由于行走路程不足 5 公里,没有额外奖励,总共 2 点。

【数据范围】

对于全部数据,保证:,。

参考程序:

'''[GESP202512 二级] 环保能量球https://www.luogu.com.cn/problem/B4447'''t = int(input())for _ in range(t):    n = int(input())    x = int(input())    print(n + n // x)

Day08:GESP三级2023.09_进制判断

【提交】

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

【问题描述】

进制数指的是逢进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母 A 至 F 表示十至十五)。

现在有个数,请你分别判断他们是否可能是二进制、八进制、十进制、十六进制。例如,15A6F 就只可能是十六进制,而 1011 则是四种进制皆有可能。

【输入描述】

输入的第一行为一个十进制表示的整数。接下来行,每行一个字符串,表示需要判断的数。保证所有字符串均由数字和大写字母组成,且不以 0 开头。保证不会出现空行。

保证 ,保证所有字符串长度不超过10。

【输出描述】

输出行,每行4个数,用空格隔开,分别表示给定的字符串是否可能表示一个二进制数、八进制数、十进制数、十六进制数。使用 1 表示可能,使用 0 表示不可能。

例如,对于只可能是十六进制数的 15A6F ,就需要输出 0 0 0 1 ;而对于四者皆有可能的 1011 ,则需要输出 1 1 1 1 。

【特别提醒】

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

【样例输入1】

215A6F1011

【样例输出1】

0 0 0 11 1 1 1

【样例输入2】

4123456712345678FFGG

【样例输出2】

0 1 1 10 0 1 10 0 0 10 0 0 0

参考程序:

'''[GESP202309 三级] 进制判断https://www.luogu.com.cn/problem/B3868'''n = int(input())for i in range(n):    s = input()    max_bit = '0'for c in s:if c > max_bit:            max_bit = c    a = [max_bit <= '1', max_bit <= '7', max_bit <= '9',max_bit <= 'F']    b = [str(int(i)) for i in a]    print(" ".join(b))

Day08:GESP四级2023.09_进制转换

【提交】

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

【问题描述】

进制数指的是逢进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母表示十至五;本题中,十一进制到十五进制也是类似的)。

在本题中,我们将给出个不同进制的数。你需要分别把它们转换成十进制数。

【提示】

对于任意一个位进制数,假设其最右边的数位为第位,最左边的数位为第位,我们只需要将其第位的数码乘以权值,再将每位的结果相加,即可得到原进制数对应的十进制数。下面是两个例子:

1、八进制数对应的十进制数为;

2、十六进制数  对应的十进制数为。

【输入描述】

输入的第一行为一个十进制表示的整数。接下来行,每行一个整数,随后是一个空格,紧接着是一个进制数,表示需要转换的数。保证所有进制数均由数字和大写字母组成,且不以开头。保证进制数合法。

保证;保证;保证所有进制数的位数不超过。

【输出描述】

输出行,每一个十进制数,表示对应进制数的十进制数值。

【特别提醒】

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

【样例输入1】

28 136216 3F0

【样例输出1】

7541008

【样例输入2】

22 1101110 123456789

【样例输出2】

27123456789

参考程序:

'''GESP202309 四级 进制转换https://www.luogu.com.cn/problem/B3869'''n = int(input())for i in range(n):    k, st = input().strip().split(' ')    k = int(k)    ans = 0for j, ch in enumerate(reversed(st)):if ch <= '9':            bit = ord(ch) - ord('0')else:            bit = ord(ch) - ord('A') + 10        ans += bit * (k ** j)    print(ans)

青少年编程竞赛交流

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

最新文章

随机文章