大数的阶乘问题代码

作者在 2012-04-01 20:23:13 发布以下内容
#include <stdio.h>
int main()
{
    int a[5000]={0,1},co=1,n;
    scanf("%d",&n);
    for(int i=2;i<=n;i++)
    {
        int jinwei=0;
        for(int j=1;j<=co;j++)
        {
            a[j]=a[j]*i+jinwei;
            if(a[j]/10000)
            {
                jinwei=a[j]/10000;
                a[j]%=10000;
            }
            else
                jinwei=0;
        }
        if(jinwei)
            a[++co]=jinwei;
    }
    printf("%d",a[co]);
    for(--co;co;--co)
        printf("%04d",a[co]);
    printf("\n");
    return 0;
}
 
默认分类 | 阅读 1091 次
文章评论,共0条
游客请输入验证码
文章分类
最新评论