ACMSTEP 2.2.7 Train Problem II //高精度运算 卡特兰数(组合数学)
2011-08-13 11:59
459 查看
原题链接
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <cctype> #include <string> #include <vector> #include <queue> #include <algorithm> using namespace std; int a[105][80]; //catalan number int b[105]; //the length of catalan void catalan() { int i, j, len, carry, temp; a[1][0] = b[1] = 1; len = 1; for(i = 2; i <= 100; i++) { for(j = 0; j < len; j++) //multi a[i][j] = a[i-1][j]*(4*(i-1)+2); carry = 0; for(j = 0; j < len; j++) { temp = a[i][j] + carry; a[i][j] = temp % 10; carry = temp / 10; } while(carry) //carried processing { a[i][len++] = carry % 10; carry /= 10; } carry = 0; for(j = len-1; j >= 0; j--) //div { temp = carry*10 + a[i][j]; a[i][j] = temp/(i+1); carry = temp%(i+1); } while(!a[i][len-1]) //drop the zeros len --; b[i] = len; } } int main() { int i, n; catalan(); while(cin>>n) { for(i = b -1; i>=0; i--) { cout<<a [i]; } cout<<endl; } return 0; }
相关文章推荐
- Train Problem II(卡特兰数以及高精度运算)
- HDU 1023 Train Problem II 卡特兰数 高精度
- hdu1023 Train Problem II [高精度卡特兰数]
- 【HDU-1023】 Train Problem II 【卡特兰数+高精度】
- hdu 1023 ——Train Problem II(卡特兰数+高精度+java)
- HDU-1023 Train Problem II 卡特兰数(结合高精度乘除)
- ACMSTEP 2.3.8 小兔的棋盘 //高精度 卡特兰数
- hdu1023 Train Problem II(卡特兰数)
- hdu 1023 Train Problem II (卡特兰数)
- Train Problem II HDU 1023 卡特兰数
- hdu1023 Train Problem II(卡特兰数)
- HDU1023_Train Problem II_卡特兰数
- hdu1032 Train Problem II (卡特兰数)
- hdu 1023 Train Problem II 卡特兰数+java
- Train Problem II(卡特兰数+大数乘除)
- HDU Train Problem II (卡特兰数+大数)
- 杭电_ACM_Train Problem II
- HDU-1023 -Train Problem II(卡特兰数)
- hdu1023 Train Problem II 卡特兰数,JAVA大数类
- HDU 1023 Train Problem II(卡特兰数)