【问题描述】
小明要做一个跑步训练。
初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗
600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是
均匀变化的
小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循
环。如果某个时刻小明的体力到达 0,他就停止锻炼
请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案
答案中只填写数,不填写单位
【问题分析】
我们通过题目可以计算,小明跑步每秒损耗10体力,休息每秒恢复5体力,那么在一个死循环中,使用递增数代替秒数,每60秒内都是运动,每秒减10体力,到哪一秒为60的倍数的时候,直接+300体力,并且+60秒
【代码演示】
class Main {
public static void main(String[] args) {
// 体力
int t=10000;
// 秒数
int s=0;
for (int i = 1;; i++) {
// 结束
if (t==0) {
System.out.println(s);
break;
}
t-=10;
s++;
if (i%60==0) {
t+=300;
s+=60;
}
}
}
}
问:为什么i%60==0的时候要直接+300体力和+60秒时间呢?
答:因为小明的体力消耗完总不可能是休息的时间消耗完,那么休息的时间和增加的体力直接加上就行了