您的位置:首页 > 其它

HDU 5973-Game of Taking Stones(威佐夫博弈

2018-01-21 20:46 369 查看
找了好久规律。找到后不会做。。。。学习(抄写)了一下java

import java.math.BigDecimal;
import java.util.Scanner;

public class Main{
public static void main(String[] args){
BigDecimal two=new BigDecimal(2);
BigDecimal three=new BigDecimal(3);
BigDecimal five=new BigDecimal(5);

//¶þ·ÖÇósqrt(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 gold=l.add(BigDecimal.ONE).divide(two);

BigDecimal a, b;
Scanner cin=new Scanner(System.in);

while(cin.hasNext()){
a=cin.nextBigDecimal();
b=cin.nextBigDecimal();
if(a.compareTo(b)>0){//±£Ö¤a<=b
BigDecimal tmp=a;
a=b;
b=tmp;
}
//ÏòÏÂÈ¡Õû£¬Í³Ò»¾«¶È
a=a.setScale(0, BigDecimal.ROUND_DOWN);
b=b.subtract(a).multiply(gold);
b=b.setScale(0, BigDecimal.ROUND_DOWN);
if(a.compareTo(b)==0) System.out.println("0");
else System.out.println("1");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: