威佐夫博弈 + java
威佐夫博弈不懂的话,可以百度一下。这道题需要精确到小数点后100位,所以我们需要用java二分求 ,然后套结论即可。
import java.util.*;
import java.math.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
BigDecimal l = BigDecimal.valueOf(2);
BigDecimal r = BigDecimal.valueOf(3);
BigDecimal tmp = BigDecimal.valueOf(5);
BigDecimal eps = BigDecimal.valueOf(1e-100);
// System.out.println(eps);
while(r.subtract(l).compareTo(eps) > 0) {
BigDecimal mid = l.add(r).divide(BigDecimal.valueOf(2));
if(mid.multiply(mid).compareTo(tmp) < 0) {
l = mid;
}
else {
r = mid;
}
}
BigDecimal a,b;
while(cin.hasNext()) {
a = cin.nextBigDecimal();
b = cin.nextBigDecimal();
if(a.compareTo(b) < 0) {
BigDecimal c = a;
a = b;
b = c;
}
BigDecimal x = a.subtract(b);
x = x.multiply(l.add(BigDecimal.ONE)).divide(BigDecimal.valueOf(2));
BigInteger t1,t2;
t1 = x.toBigInteger();
t2 = b.toBigInteger();
if(t1.equals(t2)) {
System.out.println("0");
}
else {
System.out.println("1");
}
}
}
}