南阳oj 28 大数阶乘

大数阶乘
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0

50

样例输出

30414093201713378043612608166064768844377641568960512000000000000

以下附上代码:

#include
int a[17000]={0};
int main()
{
    int i,j,k,l,n,m;
    scanf("%d",&n);
    a[0]=1;
    for(i=2;i<=n;i++)
    {
        int c=0;
        for(j=0;j<17000;j++)
        {
            int s=a[j]*i+c;
            a[j]=s%10;
            c=s/10;
        }
    }
    for(j=17000;j>=0;j--)
        if(a[j])
            break;
    for(i=j;i>=0;i--)
        printf("%d",a[i]);
    printf("\n");
    return 0;
}

你可能感兴趣的:(南阳OJ)