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()); } } }