5973 Game of Taking Stones 威佐夫博弈+高精度
阿新 • • 發佈:2018-12-12
威佐夫博弈的模板題
判斷(√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); } } } }