题意:除了数据范围为10^100次方以外就是威佐夫博弈。
关键还是sqrt(5)的精度。网上看到一种二分的求法。顺便整理个板子。
代码:
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Mainn {
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
BigDecimal two,three,five,a,b;
two = BigDecimal.valueOf(2);
three = BigDecimal.valueOf(3);
five = BigDecimal.valueOf(5);
BigDecimal l = two,r = three;
for(int i=0;i<500;i++)
{
BigDecimal mid = l.add(r).divide(two);
if(mid.multiply(mid).compareTo(five)<0)
l = mid;
else r = mid;
}
BigDecimal g = l.add(BigDecimal.ONE).divide(two);
while(cin.hasNext())
{
a = cin.nextBigDecimal();
b = cin.nextBigDecimal();
if(a.compareTo(b)<0)
{
BigDecimal tmp = a;
a=b;
b=tmp;
}
BigDecimal tmp = a.subtract(b);
tmp = tmp.multiply(g);
tmp = tmp.setScale(0,BigDecimal.ROUND_FLOOR);
if(tmp.compareTo(b)==0)
System.out.println("0");
else System.out.println("1");
}
}
}