守望者的逃离

功能:判断守望者是否能够逃出荒岛
 守望者的跑步速度,为17m/s,以这样的速度是无法逃离荒岛的。
 庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。守望者的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。


 输入参数:
 int uiMagic:整型,守望者的初始魔法值
 int uiDistance:整型,守望者所在的初始位置与岛出口之间的距离。
 int uiSec:整型,岛沉没需要的时间,单位为秒
 StringBuilder pRstOut:保证传入的是空的StringBuilder对象,要求把结果加入,输出守望者能否逃出荒岛,若能逃出输出“Yes”,不能输出“No”,注意大小写。
 返回值:
 若守望者能逃出荒岛,输出逃出荒岛所用的最短时间,
 不能逃出则输出守望者能逃出的最大距离。
 */

public class Demo {
 public int helpWatcherEscape(int uiMagic, int uiDistance, int uiSec,
   StringBuilder pRstOut) {
  int time=uiSec;
  int distance=uiDistance;
  if(uiDistance<=0){
   pRstOut.append("Yes");
   return 0;
  }
  if(uiSec<=0){
   pRstOut.append("No");
   return 0;
  }
  while(uiMagic>=10&&uiSec>=1&&uiDistance>0){
   uiSec=uiSec-1;
   uiDistance=uiDistance-60;
   uiMagic=uiMagic-10;
  }
  while(uiMagic>=6&&uiSec>=2&&uiDistance>17){
   uiSec=uiSec-2;
   uiDistance=uiDistance-60;
   uiMagic=uiMagic+4-10;
  }
  while(uiMagic>=2&&uiSec>=3&&uiDistance>34){
   uiSec=uiSec-3;
   uiDistance=uiDistance-60;
   uiMagic=uiMagic+8-10;
  }
  while(uiSec>=7&&uiDistance>119){
   uiSec=uiSec-7;
   uiDistance=uiDistance-120;
  }
  while(uiSec>0&&uiDistance>0){
   uiSec--;
   uiDistance=uiDistance-17;
  }
  if(uiSec>=0&&uiDistance<=0){
   pRstOut.append("Yes");
   return (time-uiSec);
  }else{
   pRstOut.append("No");
   return (distance-uiDistance);
  }
  
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值