解题思路:
注意事项:
参考代码:
import java.util.Scanner;
public class Main{
public static void main(String[]ages)
{
/*如果有魔法值就先用,分两个人,
一个人跑,一个人休息,一秒一秒推,
要是在魔法值回复到10之前跑的人已经到了
或者时间到了,最大值就是跑的人的距离,
否则就使用魔法*/
Scanner sc=new Scanner(System.in);
int magic=sc.nextInt();//魔法
int distance=sc.nextInt();//距离
int time=sc.nextInt();//时间
int time1=time;
int sumrun=0;//跑的人
int sumfly=0;//用魔法的人,不够就休息
while(time!=0)//一秒一秒走
{
time--;
if(magic>=10)//魔法值够,飞吧......
{
magic-=10;
sumfly+=60;
}
else//魔法值不够,分两个人进行
{
magic+=4;//one 从魔法值不够的点原地休息
}
sumrun+=17;//two不能放在else里面,因为当魔法值回复够了的这一秒,跑的人必须 //继续跑,毕竟跑的均速比飞的均速快 列如:30 245 7
if(sumrun<sumfly)//(1)从魔法值不够的点开始走
sumrun=sumfly;//跑的人只能比飞的人快,因为当魔法值不够的时候才分开
if(sumrun>=distance)//跑到了
break;
}
if(sumrun>=distance){
System.out.println("Yes");
System.out.println(time1-time);}//用了多少时间
if(sumrun<distance){
System.out.println("No");
System.out.println(sumrun);}//输出最远距离,无论如何sumrun都大于sumfly(1)
}
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复