卡特兰数是一个很常见的数列,以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名,其前几项为 : 1, 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, ...(摘自百度百科)
卡特兰数的求解方法
1.最基本的n^2递推
例题:https://www.luogu.org/problemnew/show/P1044
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int n; 5 int f[20]; 6 int main() 7 { 8 scanf("%d",&n); 9 f[0]=1; 10 f[1]=1,f[2]=2; 11 for(int i=3;i<=n;++i) 12 for(int j=0;j<i;++j) 13 f[i]+=f[j]*f[i-j-1]; 14 cout<<f[n]<<endl; 15 return 0; 16 }