链接:http://acm.hdu.edu.cn/showproblem.php?pid=5973
Wythoff博弈套公式b=(b-a)*(1+sqrt(5))/2,,,,a==b?0:1
由于BigDecimal无法开根号,所以手动二分精确根5的小数位。
//package zzz;
import java.util.Scanner;
import java.math.*;
import java.text.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in);
//BigInteger c,d,a,b=BigInteger.valueOf(32);
BigDecimal a,b,c,d,xx;
BigDecimal one = new BigDecimal(1);
BigDecimal two = new BigDecimal(2);
BigDecimal three = new BigDecimal(3);
BigDecimal five = new BigDecimal(5);
BigDecimal l=new BigDecimal(2),r=new BigDecimal(3);
for(int i=0; i<1000; ++i)
{
BigDecimal mid=r.add(l).divide(two);
if(mid.multiply(mid).compareTo(five)<0)
{
l=mid;
}
else r=mid;
}
// System.out.println(l);
BigDecimal glo=one.add(l).divide(two);//黄金分割
while(cin.hasNext())
{
//a=cin.nextBigInteger();
//b=cin.nextBigInteger();
a=cin.nextBigDecimal();
b=cin.nextBigDecimal();
if(a.compareTo(b)>0)
{
c=a;
a=b;
b=c;
}
b=b.subtract(a).multiply(glo);
// System.out.println(glo);
//System.out.println(a);
//System.out.println(b);
if(b.compareTo(a)>0 && b.subtract(a).compareTo(one)<0)System.out.println("0");
else System.out.println("1");
}
}
}