大数阶乘 nyoj28

 
#include<stdio.h>
#include<string.h>
int a[20000];
int main()
{
    int n,i,t,j,c;
    scanf("%d",&n);
    memset(a,0,sizeof(a));
    a[0]=1;t=0;
    for(i=1;i<=n;i++)
    {
        for(c=j=0;j<=t;j++)
        {
            a[j]=a[j]*i+c;
            c=a[j]/10;
            a[j]%=10;
            if(j==t&&c)//重要的进位
                t++;
        }
    }
    for(;t>=0;t--)
        printf("%d",a[t]);
    puts("");
    return 0;
}
        

你可能感兴趣的:(C语言,大数,水)