1.题目
题目描述:给定二叉树的节点总数 n,输出二叉树形态总数,n<= 1000
输入:
3
输出:
5
2.思路
1、卡特兰数
2、由于n=1000时,计算C会比较大,所以不能使用int型,而要使用long long型
3、代码
#include<iostream>
using namespace std;
long long ktl(int n) {
long long fenzi = 1, fenmu = 1;
for (int i = 2 * n; i > n; i--)
fenzi = fenzi * i;
for (int i = n; i > 0; i--)
fenmu = fenmu * i;
return (fenzi / fenmu)/(1+n);
}
int main() {
int n;
cin >> n;
cout << ktl(n);
system("pause");
return 0;
}