功能:判断守望者是否能够逃出荒岛
守望者的跑步速度,为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);
}
}
}