您的位置:首页 > 其它

hdu 1023 1130 1134 卡特兰数 (中间有大数相除和大数相乘)

2013-07-16 21:22 441 查看
AC代码如下:这三题。。。可以用一份代码提交。。。加一个判断n!=-1就行

#include <iostream>
#include <cstdio>
using namespace std;

int main(){

//求卡特兰数。打表。
int a[101][100];
a[2][0] = 1;
a[2][1] = 2;
a[1][0] = a[1][1] = 1;
for( int i = 3; i <= 100; i++ ){
int yu = 0;
int j = 1;
for( j = 1; j <= a[i-1][0]; j++ ){
int t = a[i-1][j] * ( 4 * i - 2 ) + yu;
a[i][j] = t % 10;
yu = t / 10;
}
while( yu ){
a[i][j++] = yu % 10;
yu /= 10;
}
j--;
for( int k = j; k >= 1; k-- ){
int t = a[i][k] + yu * 10;
a[i][k] = t / ( i + 1);
yu = t % ( i + 1 );
}
while( !a[i][j] ){
j--;
}
a[i][0] = j;
}

int n;
while( scanf( "%d", &n ) != EOF ){
for( int i = a
[0]; i >= 1; i-- ){
cout << a
[i];
}
cout << endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: