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

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

  • 2026-10-21 13:28:39
【第35期】21天养成编程习惯:Python刷题第18天

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

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

Day18:GESP一级2025.03_四舍五入

【提交】

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

【问题描述】

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

【输入描述】

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

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

【输出描述】

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

【样例输入1】

5
43
58
25
67
90

【样例输出1】

40
60
30
70
90

【数据范围】

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

参考程序:

'''
[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)

Day18: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 = 0
for i in range(1, n + 1):
    k, p = i % 10, i // 10
while p > 0:
if k != p % 10:
break
        p //= 10
if p == 0:
        cnt += 1
print(cnt)

Day18:CIE三级2022.12_编程题38

输入一个正数,以下代码编程求出它的平方根。请你补全代码。

in_var = float(input("请输入一个需要开方的正数,可以使用2位小数:\n x = "))
if in_var < 0:
    x = - in_var
else:
    x = in_var
low = 0.0
high = x
s_root = ____①____
if x > 0and x < 1:
    high = 1.0
    low = 0
    s_root = ____②____
if x >= 0:
while abs(____③____) > 0.0001:
if x > 1.0:
if s_root ** 2 < x:
                low = s_root
else:
                high = s_root
            s_root = ____④____
if x == 1.0and x == 0.0:
            s_root = x
else:
if s_root ** 2 < x:
                low = s_root
else:
                high = s_root
            s_root = ____⑤____

if in_var >= 0:
    print("所求数的平方根为:s_root = %.1f" % (s_root))

参考答案:

① (low + high) / 2;

② (low + high) / 2;

③ s_root ** 2 - x;

④ (low + high) / 2;

⑤ (low + high) / 2。


Day18:CIE四级2021.09_第38题

外卖送餐服务越来越受到人们的喜爱,外卖小哥们也成了路上的一道风景。

当顾客使用外卖软件点餐时,会出现一个预计送达时间,包括了餐厅制作食物的时间,路上的骑行时间等等。

一种常用的计算路上骑行时间的方法是用曼哈顿距离(manhatton distance)除以平均骑行速度。平面上点A(x1,y1)与点B(x2,y2)的曼哈顿距离为:|x1-x2|+|y1-y2|。

假设一名外卖小哥的平均骑行速度为30km/h。下面的程序模拟计算外卖小哥的路上骑行时间,请你补充完整。

输入:分两次输入A点和B点的坐标值

输出:A、B两点间的曼哈顿距离和路上骑行时间。

# 求绝对值
defmy_abs(n):
if ____①____
return n
else:
return _____②_____


# 主程序
v = 30# 平均骑行速度
x1, y1 = eval(input('输入A点的坐标(米),以逗号分隔:'))
x2, y2 = eval(input('输入B点的坐标(米),以逗号分隔:'))

# 计算曼哈顿距离mht
mht = _____③_____

# 计算路上骑行时间
time_on_the_road = _____④_____
print('A、B两点的曼哈顿距离为{}米'.format(mht))
print('预计路上骑行时间需要{}分钟'.format(time_on_the_road))
"""
程序运行结果:
输入A点的坐标(米),以逗号分隔:-1000,1000
输入B点的坐标(米),以逗号分隔:1000,-1000
A、B两点的曼哈顿距离为4000米
预计路上骑行时间需要8.0分钟
"""

参考答案:

① n > 0:或n >= 0:

② -n

③ my_abs(x1 - x2) + my_abs(y1 - y2)或sum([my_abs(x1 - x2), my_abs(y1 - y2)])或sum((my_abs(x1 - x2), my_abs(y1 - y2)))或其他等效答案

④ mht / 1000 / v * 60或mht / (1000 * v) * 60或mht * 60 / 1000 / v或(mht * 60) / (1000 * v)或其他等效答案


青少年编程竞赛交流

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

最新文章

随机文章