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("
");
65     }
66 
67     return 0;
68 
69 }
油!油!you@
原文地址:https://www.cnblogs.com/zzuli2sjy/p/4922030.html