大数阶乘

#include<stdio.h>
#include<string.h>
#define MAX 3000
int a[MAX];
int main()
{
    int n,i,j;
    scanf("%d",&n);
    memset(a,0,sizeof(a));
    a[0]=1;
    for(i=1;i<=n;i++)
    {
        int c=0;
        for(j=0;j<MAX;j++)
        {
            int s=a[j]*i+c;
            a[j]=s%10;
            c=s/10;
        }
    }
   bool flag=false;
   for(i=MAX-1;i>=0;i--)
   {
       if(flag||a[i])
       {
           flag=true;
           printf("%d",a[i]);
       }
   }
   if(!flag)
   {
       printf("0");
   }
   printf("/n");
   return 0;
}


你可能感兴趣的:(大数阶乘)