hdu 1023 Train Problem II
卡特兰数的应用 :卡特兰数参考kuangbing总结http://www.cnblogs.com/kuangbin/archive/2012/03/21/2410516.html。
大数的运算
hdu题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1023
1 #include<algorithm> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<iostream> 5 #include<stdio.h> 6 using namespace std; 7 int a[101][505];//数组只要开a[101][100]; 8 int main(void) 9 { 10 int n,i,j,k,p,q; 11 a[1][500]=1; 12 a[2][500]=2; 13 a[3][500]=5; 14 for(i=4; i<=100; i++) 15 { 16 int v=4*i-2; 17 int u=i+1; 18 19 for(j=500; j>=0; j--) 20 { 21 a[i][j]=v*a[i-1][j]; 22 } 23 q=0; 24 for(j=500; j>=0; j--) 25 { 26 int y=(a[i][j]+q)%10; 27 q=(a[i][j]+q)/10; 28 a[i][j]=y; 29 }//模拟乘法 30 for(j=0; j<500; j++) 31 { 32 if(a[i][j]!=0) 33 { 34 break; 35 } 36 } 37 38 int kk=0; 39 int vv=0; 40 for(p=j; p<=500; p++) 41 { 42 int z=(a[i][p]+vv*10)/u; 43 44 vv=(a[i][p]+vv*10)%u; 45 a[i][p]=z; 46 47 }//模拟除法 48 49 50 } 51 while(scanf("%d",&n)!=EOF) 52 { 53 for(i=0; i<=500; i++) 54 { 55 if(a[n][i]!=0) 56 { 57 break; 58 } 59 } 60 for(j=i; j<=500; j++) 61 { 62 printf("%d",a[n][j]); 63 } 64 printf("\n"); 65 } 66 67 return 0; 68 69 }
油!油!you@