跑步训练

20届第三题跑步训练

/*

  • 本题总分:10 分
    【问题描述】
    小明要做一个跑步训练。
    初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗
    600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。
    小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循
    环。如果某个时刻小明的体力到达 0,他就停止锻炼。
    请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案。
    答案中只填写数,不填写单位。
    【答案提交】
    3380
    这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
    整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

解题思路: 定义一个flag 600和300交换,进行迭代10000体力,if…else判断由flag决定

*/

package _11第十一届;
/*
 * 本题总分:10 分
【问题描述】
小明要做一个跑步训练。
初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗
600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。
小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循
环。如果某个时刻小明的体力到达 0,他就停止锻炼。
请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案。
答案中只填写数,不填写单位。
【答案提交】
3380
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

解题思路: 定义一个标签600和300交换,进行迭代10000体力,if..else判断由标签决定

 */
public class Test03跑步训练 {
 public static void main(String[] args) { 
	 //这道题会超时
	int n=10000;
	int cnt=0;
	boolean flag=true;
	while(true) {
		if(n<600&&flag) {//不足600体力
			break;
		}
		if(flag) { //消耗600体力
			n-=600;
			flag=false;
		}else {   //消耗300体力
			n+=300;
			flag=true;
		}
		cnt++;  //计算多少分钟
	}
	int time =cnt*60+n/10;   //需要注意的是剩下的体力要秒算  600/60
	System.out.println(time);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金石不渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值