某找房网 笔试题(二)

一、题目说明:

傻傻的搏斗

小智和小春两个游戏菜鸟要进行电竞搏斗,小智有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";
		}
		
	}
}

六、说明:

该代码并没有进行完善的测试,如果有什么问题,欢迎大家批评指正!共同进步! 

猜你喜欢

转载自blog.csdn.net/fhy569039351/article/details/83116770
今日推荐