题意:

在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?

题解:

卡特兰数题,
卡特兰序列:1,1,2,5,14,42,132,429,1430·············

递推式f(n)=f(n-1)*(4n-2)/ (n+1) ,
大数的模板可以做,java也可以
队友用java写的

代码:

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    static BigInteger [] a=new BigInteger[200];
    public static void init(){
        a[0]=new BigInteger("1");
        a[1]=new BigInteger("1");
        a[2]=new BigInteger("2");
        for(int i=3;i<=100;i++){
            a[i]=new BigInteger("0");
            for(int j=i-1;j>=0;j--){
                a[i]=a[i].add(a[j].multiply(a[i-j-1]));
            }
        }
    }
    public static void main(String[] args) {
        init();
        Scanner in=new Scanner(System.in);
        while (true){
            int n;
            n=in.nextInt();
            if(n==-1)
                break;
            System.out.println(a[n]);
        }
    }
}