一、题目说明:
傻傻的搏斗
小智和小春两个游戏菜鸟要进行电竞搏斗,小智有X点HP,每次攻击便使对方丢失A点生命值,每次攻击完后需要冷却C秒,小春有Y点HP,每次攻击会使对方丢失B点生命值,每次攻击完后需要冷却D秒。玩家HP小于等于0时便死亡,若小智最终存活,则输出XIAOZHI,若小春最终存活,则输出XIAOCHUN。若两者一起死亡,则输出TIE。
二、样例输入
4
1 2 3 4 5 6
128 39 20 109 100 92
1000 10 39 33 333 39
101 10 10 101 20 20
三、样例输出
XIAOCHUN
XIAOZHI
TIE
TIE
四、代码实现(java语言)
package test;
/**
* 傻傻的搏斗 解答
*/
import java.lang.reflect.Array;
import java.util.Scanner;
public class ZhaoFangT2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int lines = scan.nextInt();
scan.nextLine();
int count = 0;
String eachLine = "";
int X,A,C,Y,B,D;
String[] resultStr = new String[lines];
while(count<lines){
eachLine = scan.nextLine();
String[] eachStr = eachLine.split(" ");
X = Integer.parseInt(eachStr[0]); //小智HP
A = Integer.parseInt(eachStr[1]); //小智使对方丢失点数
C = Integer.parseInt(eachStr[2]); //小智冷却时间
Y = Integer.parseInt(eachStr[3]); //小春HP
B = Integer.parseInt(eachStr[4]); //小春使对方丢失点数
D = Integer.parseInt(eachStr[5]); //小春冷却时间
String eachresult = getResult(X,A,C,Y,B,D);
resultStr[count] = eachresult;
count++;
}
for(int i=0; i<lines; i++){
System.out.println(resultStr[i]);
}
}
private static String getResult(int x, int a, int c, int y, int b, int d) {
//初始判断
if(x<=0 && y<=0){
return "TIE";
}else if(x<=0){
return "XIAOCHUN";
}else if(y<=0){
return "XIAOZHI";
}
//开始攻击
int zhiCount = (int) (Math.ceil((double)y/a)-1); //小智需要攻击次数
int zhiTime = zhiCount*c; //小智需要冷却的时间
int chunCount = (int) (Math.ceil((double)x/b)-1);//小春需要攻击的次数
int chunTime = chunCount*d; //小春需要冷却的时间
if(zhiTime == chunTime){
return "TIE";
}else if(zhiTime > chunTime){
return "XIAOCHUN";
}else{
return "XIAOZHI";
}
}
}
六、说明:
该代码并没有进行完善的测试,如果有什么问题,欢迎大家批评指正!共同进步!