java

公式 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(); //去除末尾的0
			if(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");
			}
		}
	}
}        



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值