#include <stdio.h>
#include "windows.h"
// n个节点,可以构建多少种二叉树
// 利用动态规划可以解决
// 根据讲解,利用递归也可以解决
// 或者这个也满足***卡特兰数*** 利用公式也可以解决
//递归
int x(int n) {
if (n == 0 || n == 1) return 1;
else {
int tmp = 0;
for (int i = 0; i < n; ++i) {
tmp += x(i) * x(n - 1 - i);
}
return tmp;
}
}
// 阶乘函数
int factorial(int n){
if (n == 0 || n == 1) return 1;
else return n*factorial(n-1);
}
// 卡特兰公式
int goshi(int n){
return factorial(2*n)/ (factorial(n)* factorial(n+1));
}
int main() {
printf("%d", goshi(6));
};