当前位置 : 主页 > 编程语言 > java >

C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学B组 第一场(2020.7.5) 试题 A: 跑步训练 题

来源:互联网 收集:自由互联 发布时间:2022-10-26
  大家好,我叫亓官劼(qí guān jié ) 试题 A: 跑步训练 本题总分:5 分 【问题描述】 小明要做一个跑步训练。 初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损


  大家好,我叫亓官劼(qí guān jié )


C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学B组 第一场(2020.7.5) 试题 A: 跑步训练 题目+题解_结果填空


试题 A: 跑步训练

本题总分:5 分

【问题描述】

小明要做一个跑步训练。

初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗

600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是

均匀变化的。

小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循

环。如果某个时刻小明的体力到达 0,他就停止锻炼。

请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案。

答案中只填写数,不填写单位。

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个

整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

试题A 题解

这里可以口算:答案为:​​3880​​

10000 / (600-300) == 33.33
33*(600-300) = 9900
10000 - 9900 + 300 = 400 < 600
所以时间为32*2*60 + 400/10 = 3880

也可以写程序模拟:

energy = 10000
min = 0
second = 0
while(energy):
min += 1
if min % 2 == 1:
if energy > 600 :
energy -= 600
else:
min -= 1
second = energy/10
energy = 0
else:
energy += 300
if energy <= 0:
break
print(min*60+second)

答案:​​3880​​


网友评论