hdu1023 出栈卡特兰数 first java(大整数乘法)
卡特兰数:
a[0]=0; a[1]=1;
a[i]=a[i-1]*(4*i-2)/(i+2);
抄来的java大数,以后慢慢学。
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigInteger; 4 5 public class Main { 6 public static void main(String args[]) 7 { 8 BigInteger[] a=new BigInteger[101]; 9 a[0]=BigInteger.ZERO; 10 a[1]=BigInteger.valueOf(1); 11 for (int i=2;i<=100;i++) 12 a[i]=a[i-1].multiply(BigInteger.valueOf(4 * i - 2)).divide(BigInteger.valueOf(i+1)); 13 Scanner in=new Scanner(System.in); 14 int n; 15 while (in.hasNext()) 16 { 17 n=in.nextInt(); 18 System.out.println(a[n]); 19 } 20 } 21 }
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1023