阶乘 (大数)

#include <stdio.h>
#include <string.h>

const int maxn = 3000;
int f[maxn];

int main()
{
    int i,j,n;
    scanf("%d",&n);
    memset(f,0,sizeof(f));
        f[0]=1;
    for(i=1; i<=n; i++)
    {
          //乘以i
          int c=0;
        for(j=0; j<maxn; j++)
        {
           int s=f[j]*i+c;
           f[j]=s%10;
           c=s/10;
        }
    }
    for(j=maxn-1; j>=0; j--)
        if(f[j])
        break;//忽略前导0
    for(i=j;i>=0;i--)
        printf("%d",f[i]);
    putchar('\n');
        return 0;
}

 

posted @ 2013-04-02 19:34  尔滨之夏  阅读(170)  评论(0编辑  收藏  举报