标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3397 Accepted Submission(s):
1964
http://blog.csdn.net/sunshine_yg/article/details/47685737 卡特兰数 #include<iostream> #include<cstring> #include<string> #include<cstdio> #include<algorithm> using namespace std; const int base = 10000; const int N = 100 + 2; int katelan[N][N]; int main() { katelan[1][1] = 1; katelan[2][1] = 2; katelan[3][1] = 5; for (int i = 4; i <= 100; i++) { for (int j =1; j<100; j++)//大数乘法 { katelan[i][j] += katelan[i - 1][j] * (4 * i - 2); katelan[i][j + 1] += katelan[i][j] / base; katelan[i][j] %= base; } int temp; for (int j = 100; j > 0; j--)//大数除法 { temp=katelan[i][j] % (i + 1); katelan[i][j-1]+=temp* base; katelan[i][j] /= (i + 1); } } int n; while (cin >> n) { int i = 100; while (katelan[n][i] == 0)i--; cout << katelan[n][i--]; while (i > 0) printf("%04d", katelan[n][i--]); cout << endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/Ritchie/p/5425323.html