hdu 5973 Game of Taking Stones java大数+根号5的精度

威佐夫博弈的模板题

但是数据太大 用到java大数 还需要注意精度问题 

没具体数就复制了下面的几行

根号5的10000位

因为package  wa了好几发

import java.math.*;
import java.text.*;
import java.util.*;

public class Main {

	public static void main(String[] args) {
		  Scanner cin=new Scanner(System.in);
	        while(cin.hasNextBigDecimal())
	        {
	        	BigDecimal a=cin.nextBigDecimal();
	        	BigDecimal b=cin.nextBigDecimal();
	        	 BigDecimal c,m;
	        	 if(a.compareTo(b)>0)
	        	 {
	        		 c=a;
	        		 a=b;
	        		 b=c;
	        	 } 
	        	 c=b.subtract(a);
	        	 
	             //double o=(1+Math.sqrt(5.0))/2;
	        	 
	            
	             BigDecimal h = new BigDecimal("2");
	            
	             BigDecimal zz = new BigDecimal("2.23606797749978969640917366873127623544061835961152572427089724541052092563780489941441440837878227496950817615077378350425326772444707386358636012153345270886677817319187916581127664532263985658053576135041753378500342339241406444208643253909725259262722887629951740244068161177590890949849237139072972889848208864154268989409913169357701974867888442508975413295618317692149997742480153043411503595766833251249881517813940800056242085524354223555610630634282023409333198293395974635227120134174961420263590473788550438968706113566004575713995659556695691756457822195250006053923123400500928676487552972205676625366607448585350526233067849463342224231763727702663240768010444331582573350589309813622634319868647194698997018081895242644596203452214119223291259819632581110417049580704812040345599494350685555185557251238864165501026243631257102444961878942468290340447471611545572320173767659046091852957560357");
                zz=zz.add(BigDecimal.ONE);
                zz=zz.divide(h);
	            //System.out.println(zz);
	        	// BigDecimal d=new BigDecimal(o);
	        	 m=zz.multiply(c);
	        	// System.out.println(m);
	        	m=m.setScale(0,BigDecimal.ROUND_DOWN);
	        	// System.out.println(m);
                 if(m.compareTo(a)==0)
	        	 System.out.println("0");
                 else
                 System.out.println("1");

	}

}
}



猜你喜欢

转载自blog.csdn.net/yangdelu855/article/details/79047219
今日推荐