威佐夫博弈的结论
但是因为这个数值太大了,我们需要用JAVA的大数来实现这个判断
首先,根号5这个值要怎么来?
二分判断一万次啊!一个数的平方去和5比较,用L和R二分不断逼近
然后就是公式了咯
import java.math.BigDecimal;
//import java.math.BigInteger;
//import java.math.MathContext;
//import java.math.RoundingMode;
import java.util.Scanner;
public class Main {
public static BigDecimal Get(BigDecimal x){
BigDecimal L=new BigDecimal("0.000000000000000000000000000001");
BigDecimal R=x;
for(int i=0;i<1000;i++){
BigDecimal mid=L.add(R).divide(new BigDecimal("2.0"));
BigDecimal mid2=mid.multiply(mid);
if (mid2.max(x).equals(mid2)) R=mid;
else L=mid;
}
return R;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
BigDecimal n,m;
BigDecimal sqrt5=Get(new BigDecimal(5));
while(in.hasNextBigDecimal()){
n=in.nextBigDecimal();
m=in.nextBigDecimal();
if (m.equals(n.max(m))){
BigDecimal x=n;
n=m;
m=x;
}
BigDecimal k=n.subtract(m);
BigDecimal p=new BigDecimal(1);
n=p.add(sqrt5).multiply(k);
n=n.divide(new BigDecimal(2));
if (n.toBigInteger().equals(m.toBigInteger()))
System.out.println("0");
else
System.out.println("1");
}
in.close();
}
}