标签:
题目抽象:给定若干字母和它们相应的个数,计算一共可以组成多少个不同的字符串.
1 import java.math.*; 2 import java.util.*; 3 import java.io.*; 4 import java.text.*; 5 6 public class Main 7 { 8 9 public static void main(String[] args) 10 { 11 Scanner cin=new Scanner(new BufferedInputStream(System.in)); 12 while(cin.hasNext()) 13 { 14 int n=cin.nextInt(); 15 if(n==0) 16 break; 17 int[] a=new int[n]; 18 int sum=0; 19 for(int i=0;i<n;i++) 20 { 21 a[i]=cin.nextInt(); 22 sum+=a[i]; 23 } 24 BigInteger ans=fact(sum); 25 for(int i=0;i<n;i++) 26 ans=ans.divide(fact(a[i]) ); 27 System.out.println(ans); 28 } 29 cin.close(); 30 } 31 public static BigInteger fact(int n) 32 { 33 BigInteger res=BigInteger.ONE; 34 for(int i=2;i<=n;i++) 35 res=res.multiply(BigInteger.valueOf(i)); 36 return res; 37 } 38 }
标签:
原文地址:http://www.cnblogs.com/hutaishi/p/4486520.html