Java 雇佣兵
参考代码:
import java.util.*;
public class Main{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int M = in.nextInt(); //体力最大值
int N = in.nextInt(); //战斗力
int X = in.nextInt(); //拥有的能力元素
int m = 0; //初始体力值
while(N <= M){ //能量不能超过体力值
if( M%N==0)
{
X -= M/N; //补充能量继续战斗
}else{
X -= ((M/N)+1); //从头再来
}
if(X == 0){ //能力元素用尽
N += M/N;
break;
}else if(X > 0){
N += M/N;
}else{
m = N;
break;
}
}
if(X<0){
System.out.print(m);
}
else
{
System.out.print(N);
}
}
}
输入格式:
一行包括三个整数 MM、NN、XX,相邻两个整数之间用单个空格隔开。MM、NN、XX 均为不超过 1000010000 的正整数。
输出格式:
输出一个整数,为雇佣兵的最大战斗力。
测试用例:
样例一:
样例输入:
5 2 10
样例输出:
6
样例二:
样例输入:
2 2 -1
样例输出:
2
个人感受:
这题贼有意思,拿到这题光读题目就读了好几遍,把题目中涉及的变量一点一点的写出来去做。