java

来源:互联网 发布:淘宝直通车养词要多久 编辑:程序博客网 时间:2024/04/27 23:44

公式 c(n+m-1,m);

import java.math.*;import java.io.*;import java.util.*;public class Main {// static final long[] a = new long[26];public static BigInteger fun(int n) {BigInteger a;a = BigInteger.valueOf(1);for(int i=1;i<=n;i++){a = a.multiply(BigInteger.valueOf(i));}return a;}public static void main(String[] args) {Scanner cin = new Scanner(System.in);while(cin.hasNext()){BigInteger n = cin.nextBigInteger();BigInteger m = cin.nextBigInteger();if (n.compareTo(BigInteger.ZERO) == 0&& m.compareTo(BigInteger.ZERO) == 0)break;n = n.add(m).subtract(BigInteger.ONE);BigInteger x = n.subtract(m);BigInteger y = fun(Integer.valueOf(x.toString()));BigInteger z = fun(Integer.valueOf(n.toString()));BigInteger w = fun(Integer.valueOf(m.toString()));y = y.multiply(w);z = z.divide(y);System.out.println(z);}}}

求高精度幂 nyoj155  

 import java.math.*;import java.io.*;import java.util.*;import java.math.BigDecimal;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);while(cin.hasNext()){BigDecimal ans=cin.nextBigDecimal();int n=cin.nextInt();String res=ans.pow(n).stripTrailingZeros().toPlainString(); //去除末尾的0//System.out.println(res);if(res.startsWith("0")) //去除前导的零{res=res.substring(1);}System.out.println(res);}}}        

a+b 并输出最简形式

  import java.math.BigDecimal;import java.util.Locale;import java.util.Scanner;public class Main {    public static void main(String[] args)     {        Scanner in=new Scanner(System.in);        BigDecimal a,b;        while(in.hasNext())         {            a=in.nextBigDecimal();            b=in.nextBigDecimal();            a=a.add(b);            if(a.compareTo(BigDecimal.ZERO)==0)              System.out.println("0");            else              System.out.println(a.stripTrailingZeros().toPlainString());        }    }}                

poj 1200  map 应用。

import java.math.*;import java.io.*;import java.util.*;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);Map map=new HashMap();String s,key;int i,num,n,m;while (cin.hasNext()) {n = cin.nextInt();m = cin.nextInt();s = cin.next();m = s.length();for (num = i = 0; i <= m-n; i++) {key = s.substring(i, i + n);if (!map.containsKey(key)) {num++;map.put(key, 1);}}System.out.println(num);map.clear();}}}

hdu 2054 比较A,B是否相等,有前导零,正负号,后面的零。

import java.math.*;import java.io.*;import java.util.*;import java.math.BigDecimal;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);while(cin.hasNext()){BigDecimal ans=cin.nextBigDecimal();BigDecimal res=cin.nextBigDecimal();String ans1=ans.stripTrailingZeros().toPlainString(); //去除末尾的0if(ans1.startsWith("0")) //去除前导的零{ans1=ans1.substring(1);}String res1=res.stripTrailingZeros().toPlainString();if(res1.startsWith("0")){res1=res1.substring(1);}if(ans1.compareTo(res1)!=0){System.out.println("NO");}else{System.out.println("YES");}}}}