涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月打卡题目
【提交】
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)
【提交】
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)
输入一个正数,以下代码编程求出它的平方根。请你补全代码。
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。
外卖送餐服务越来越受到人们的喜爱,外卖小哥们也成了路上的一道风景。
当顾客使用外卖软件点餐时,会出现一个预计送达时间,包括了餐厅制作食物的时间,路上的骑行时间等等。
一种常用的计算路上骑行时间的方法是用曼哈顿距离(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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
