看了下大牛們的,原來這題是卡特蘭數,順便練練java。遞歸式子:h(0)=1,h(1)=1 h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2) 打表172MS
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); BigInteger[] a=new BigInteger [205]; a[0]=a[1]=BigInteger.ONE; for(int i=2;i<=200;i++){ a[i]=BigInteger.ZERO; for(int j=0;j<i;j++){ a[i]=a[j].multiply(a[i-j-1]).add(a[i]); } //System.out.println(a[i]); } while(true){ int n=in.nextInt(); if(n==-1) break; System.out.println(a[n]); } } }