今天去SGU刷瓜题,结果遇到了一道必须用高精度的题...SGU356,由于用C++写不知道又要写多长...于是,我用起了才学几天的Java。
在网上翻了n久资料,在被误导(居然有个Blog把BigInteger.divide说成是减法...)和Compile Error了x次之后,我终于过样例了!
可惜的是,SGU又成SGUJOS了...wating了一长串。希望一觉之后,我看到的是一个Accept。
My Program:
import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Solution
{
____public static void main(String args[])
____{
________Scanner cin=new Scanner(System.in);
________int m=cin.nextInt(),n=cin.nextInt();
________BigInteger A=new BigInteger("0"),B=new BigInteger("1"),V,g;
________for(int i=2;i<=n-m;i++)
____________B=B.multiply(BigInteger.valueOf(i));
________V=B;
________for(int i=2;i<=m;i++)
____________B=B.multiply(BigInteger.valueOf(i));
________for(int i=0;i<=n-m;i++)
________{
____________if(i>0)V=V.divide(BigInteger.valueOf(i));
____________if((i&1)==1)A=A.subtract(V);
____________else A=A.add(V);
________}
________g=A.gcd(B);
________A=A.divide(g);
________B=B.divide(g);
________if(A.compareTo(BigInteger.ZERO)==0)System.out.println("0");
________else System.out.println(A.toString()+"/"+B.toString());
____}
}