zhang20072844的专栏

一些当前好走的路,会越走越窄,而一些看上去很难走很辛苦的路,越走却越宽广 。...

poj2084

  1. package middle;   
  2.   
  3.   
  4. import java.io.BufferedInputStream;   
  5. import java.math.BigInteger;   
  6. import java.util.Scanner;   
  7.   
  8. /**  
  9.  * 令h(0)=1,h(1)=1,catalan数满足递归式:  
  10.  * h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系;  
  11.  * 还可以化简为1阶递推关系: 如h(n)=(4n-2)/(n+1)*h(n-1)(n>1) h(0)=1  
  12.  * 该递推关系的解为:h(n)=c(2n,n)/(n+1) (n=1,2,3,...)//2n!/n!/n!  
  13.  * 卡 塔兰数例的前几项为(sequence A000108 in OEIS) [注: n = 0, 1, 2, 3, … n]  
  14.  * 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440,  
  15.  * 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020,  
  16.  * 91482563640, 343059613650, 1289904147324, 4861946401452, …  
  17.  * poj2084  
  18.  * @author NC  
  19.  */  
  20. public class Poj2084 {   
  21.   
  22.     public static void main(String[] args) {   
  23.         Scanner scan = new Scanner(new BufferedInputStream(System.in));   
  24.         while (scan.hasNext()) {   
  25.             BigInteger n = scan.nextBigInteger();   
  26.             if (n.compareTo(BigInteger.ZERO) == -1) {   
  27.                 break;   
  28.             }   
  29.             BigInteger ss = BigInteger.ONE;   
  30.             BigInteger c = BigInteger.ONE;   
  31.             BigInteger s = null ;   
  32.             for (int i = 1; i <= 2 * n.intValue(); i++) {   
  33.                 ss = ss.multiply(c);   
  34.                 c=c.add(BigInteger.ONE);   
  35.                 if(i==n.intValue()){   
  36.                 s = ss;   
  37.                 }   
  38.             }   
  39.             System.out.println(ss.divide(s).divide(s).divide(n.add(BigInteger.ONE)));   
  40.   
  41.         }   
  42.     }   
  43. }  
阅读更多
文章标签: string null c
个人分类: ACM解题报告
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭