大数求阶乘

来源:互联网 发布:随身wifi无限流量 知乎 编辑:程序博客网 时间:2024/05/19 02:23
#include<cstdio>#include<cstring>using namespace std;int a[10000];int main(){    int n;    scanf("%d",&n);    memset(a,0,sizeof(a));//初始化     a[1]=1;    int len=1;    for(int i=1;i<=n;i++)    {        for(int j=1;j<=len;j++)        a[j]=a[j]*i;//使数的每一位都乘i         for(int j=1;j<=len;j++)        {            if(a[j]<10)            continue;            int pos=j;            while(pos<=len)//进位            {                if(a[len]>9)                len++;                a[pos+1]+=a[pos]/10;                 a[pos]%=10;                pos++;            }           }    }    for(int i=len;i>0;i--)    printf("%d",a[i]);    return 0;}