问题链接:HDU-2067
思路
经典的卡特兰数问题,主要还是求卡特兰数,要注意给的n的范围,注意求卡特兰数的方法是否会超时,是否会溢出。
AC的代码
#include<iostream>
using namespace std;
void f();
long long int ctl[109] = { 1,1 };
int main()
{
f();
int n, i = 1;
while (cin>>n&&n!=-1)
{
cout << i << " " << n << " " << ctl[n] * 2 << endl;
i++;
}
return 0;
}
void f()
{
for (int i = 1; i <= 36; i++)
{
ctl[i] = 0;
for (int j = 0; j < i; j++)
ctl[i] += ctl[j] * ctl[i - j - 1];
}
}