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

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

  • 2026-10-11 06:58:14
【第42期】21天养成编程习惯:Python刷题第12天

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


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

Day12: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()

Day12:GESP三级2025.06_奇偶校验

【提交】

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

【问题描述】

数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。

给定  个非负整数  代表所传输的数据,它们的校验码取决于这些整数在二进制下  的数量之和的奇偶性。如果这些整数在二进制下共有奇数个 ,那么校验码为 ;否则校验码为 。你能求出这些整数的校验码吗?

【输入描述】

第一行,一个正整数 ,表示所传输的数据量。

第二行, 个非负整数 ,表示所传输的数据。

【输出描述】

输出一行,两个整数,以一个空格分隔:

第一个整数表示  在二进制下  的总数量;

第二个整数表示校验码(0或1)。

【样例输入1】

471 69 83 80

【样例输出1】

13 1

【样例输入2】

61 2 4 8 16 32

【样例输出2】

6 0

【数据范围】

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

参考程序:

方法一:

''' [GESP202506 三级] 奇偶校验 https://www.luogu.com.cn/problem/B4358'''n = int(input())lst = list(map(int, input().split()))cnt = 0for x in lst:while x != 0:if x % 2 == 1:            cnt += 1        x = x // 2print("{0} {1}".format(cnt, cnt % 2))

方法二:

''' [GESP202506 三级] 奇偶校验 https://www.luogu.com.cn/problem/B4358'''n = int(input())lst = list(map(int, input().split()))cnt = 0for x in lst:    bin_str = bin(x)[2:]    cnt += bin_str.count("1")print("{0} {1}".format(cnt, cnt % 2))

Day12: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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章