牛顿迭代咱也看不懂,只能靠写写二分这样过日子。
import java.util.Scanner;
import java.math.BigInteger;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t=sc.nextInt();
for(int i=1;i<=t;i++) {
BigInteger n =sc.nextBigInteger();
BigInteger m = n.multiply(n.subtract(BigInteger.ONE)).shiftRight(1);
boolean x=sqrt(n),y=sqrt(m);
if(x&&y) System.out.println("Arena of Valor");
else if( x && (!y) ) System.out.println("Hearth Stone");
else if( (!x) && y ) System.out.println("Clash Royale");
else System.out.println("League of Legends");
}
}
public static boolean sqrt(BigInteger n) {
BigInteger l = BigInteger.ZERO,r=n;
while(l.compareTo(r)<=0) {
BigInteger m=l.add(r).shiftRight(1);
int res=m.multiply(m).compareTo(n);
if(res==0) return true;
else if(res>0) r=m.subtract(BigInteger.ONE);
else l=m.add(BigInteger.ONE);
}
return false;
}
}