HDU 2067

卡特兰数的例题了。

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
import java.io.InputStreamReader;

public class Main{
	public static void main(String args[]){
		Scanner in=new Scanner(System.in);
		BigDecimal []Can=new BigDecimal[50];
		Can[0]=new BigDecimal(1);
		BigDecimal B,C,D,E;
		for(int i=1;i<50;i++){
			B=new BigDecimal(4*i-2);
			C=new BigDecimal(i+1);
			D=Can[i-1].multiply(B);
			Can[i]=D.divide(C);
		}
		int kase=0;
		E=new BigDecimal(2);
		while(in.hasNext()){	
			kase++;
			int x=in.nextInt();
			if(x==-1)
				break;
			BigDecimal ans=Can[x].multiply(E);
			
				System.out.println(kase+" "+x+" "+ans.toString());
		}
	}
}

  

posted @ 2014-10-07 10:42  chenjunjie1994  阅读(143)  评论(0编辑  收藏  举报