恩佐夫博弈+JAVA大数

题意:http://acm.hdu.edu.cn/showproblem.php?pid=5973

根号5复制后200位就行了,因为BigDecimal不支持开根号,除法二分开根。

 1 import java.io.FileInputStream;
 2 import java.io.PrintStream;
 3 import java.math.BigDecimal;
 4 import java.math.BigInteger;
 5 import java.util.Scanner;
 6 import java.util.*;
 7 
 8 public class Main{
 9     //    static private final String INPUT="C:\Users\13606\Desktop\草稿.txt";
10 //    static private final String OUTPUT="C:/output.txt";
11     public static void main(String[] args){
12         //    FileInputStream instream=null;
13         //    PrintStream outstream=null;
14     /*    try{
15             instream=new FileInputStream(INPUT);
16             System.setIn(instream);
17         //    outstream=new PrintStream(OUTPUT);
18         //    System.setOut(outstream);
19         }catch(Exception e){
20             System.err.println("Error Occurred.");
21         }*/
22 
23         //=======================================================================
24         Scanner cin=new Scanner(System.in);
25         BigDecimal n,m;
26         while(cin.hasNextBigDecimal()){
27             n=cin.nextBigDecimal();
28             m=cin.nextBigDecimal();
29             BigDecimal a,b;
30             BigDecimal n2=new BigDecimal("2.0");
31             BigDecimal r=new BigDecimal("3.23606797749978969640917366873127623544061835961152572427089724541052092563780489941441440837878227496950817615077378350425326772444707386358636012153345270886677817319187916581127664532263985658053576135041753378500342339241406444208643253909725259262722887629951740244068161177590890949849237139072972889848208864154268989409913169357701974867888442508975413295618317692149997742480153043411503595766833251249881517813940800056242085524354223555610630634282023409333198293395974635227120134174961420263590473788550438968706113566004575713995659556695691756457822195250006053923123400500928676487552972205676625366607448585350526233067849463342224231763727702663240768010444331582573350589309813622634319868647194698997018081895242644596203452214119223291259819632581110417049580704812040345599494350685555185557251238864165501026243631257102444961878942468290340447471611545572320173767659046091852957560357");
32             r=r.divide(n2);
33             if(n.compareTo(m)>=0){
34                 BigDecimal c=n.subtract(m);
35                 BigDecimal temp=r.multiply(c);
36                 BigDecimal ans=temp.setScale(0,BigDecimal.ROUND_FLOOR);
37                 if(ans.compareTo(m)==0)
38                     System.out.println(0);
39                 else
40                     System.out.println(1);
41             }
42             else{
43                 BigDecimal c=m.subtract(n);
44                 BigDecimal temp=r.multiply(c);
45                 BigDecimal ans=temp.setScale(0,BigDecimal.ROUND_FLOOR);
46                 if(ans.compareTo(n)==0)
47                     System.out.println(0);
48                 else
49                     System.out.println(1);
50             }
51         }
52     }
53 }
原文地址:https://www.cnblogs.com/--HPY-7m/p/11745629.html