版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lngxling/article/details/82905107
威佐夫博弈的模板题
判断(√5-1)/2 *(b-a)是否和a相等
但是数据很大,用Java开了高精度,二分求√5的值
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(1);
for(int i=1;i<=500;i++)
{
BigDecimal mid=l.add(r).divide(BigDecimal.valueOf(2));
tmp=mid;
if(mid.multiply(mid).compareTo(BigDecimal.valueOf(5))<0)
{
l=mid;
}
else
{
r=mid;
}
}
tmp=tmp.add(BigDecimal.valueOf(1));
tmp=tmp.divide(BigDecimal.valueOf(2));
BigDecimal a,b;
while(cin.hasNext())
{
a=cin.nextBigDecimal();
b=cin.nextBigDecimal();
if(a.compareTo(b)>0)
{
BigDecimal t=a;
a=b;
b=t;
}
BigDecimal k=b.subtract(a);
k=k.multiply(tmp);
k=k.setScale(0,BigDecimal.ROUND_DOWN);
if(k.compareTo(a)==0)
{
System.out.println(0);
}
else
{
System.out.println(1);
}
}
}
}