hdu-1131(卡特兰数+大数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1131

思路:R(x)=h(x)*n!=C(n,2*n)*n!=A(n+2,n*2);

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1000;
int i,j,n,a[maxn+10];
int main(void)
{
    while(~scanf("%d",&n)&&n)
    {
        memset(a,0,sizeof(a));
        a[0]=1;
        for(i=n+2;i<=2*n;i++)
        {
            for(j=0;j<1000;j++) a[j]*=i;
            for(j=0;j<1000;j++)
            {
                if(a[j]>=10)
                {
                    a[j+1]+=a[j]/10;
                    a[j]%=10;
                }
            }
        }
        for(i=1000;i>0&&a[i]==0;i--) ;
        for(;i>0;i--) printf("%d",a[i]);
        printf("%d
",a[i]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/2018zxy/p/9904274.html