计算公式
1.C(2n,n)/(n+1) (C(2n,n)表示2n里取n)或者C(2n,n)-C(2n,n-1)都可以解决。
2.另类递推公式:C(n)=C(n-1)*((4*n-2)/(n+1));
3.也满足
Catalan前几项为:
1,2,5,14,42,
132,429,1430,4862,16796,
58786,208012,742900,2674440,9694845,
35357670,129644790,477638700,1767263190,6564120420,
24466267020,91482563640,343059613650,1289904147324,4861946401452,
import java.util.Scanner;
public class Main{
public static void fun(int n) {
long[] arry = new long[n + 1];
arry[0] = 1;
arry[1] = 1;
arry[2] = 2;
arry[3] = 5;
for (int i = 4; i <= n; i++) {
for (int j = 0; j <= i - 1; j++)
arry[i] += arry[i - 1 - j] * arry[j];
}
for (int i = 1; i <= n; i++) {
System.out.print(arry[i] + ",");
if (i % 5 == 0)
System.out.println();
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
fun(n);
}
}
实际应用
1.出站次序
https://blog.youkuaiyun.com/Fcity_sh/article/details/89425446