关于阶乘【非打表

/*大数阶乘*/


#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define N 100005
inline int read(){
    int s=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
    return s*w;
}
int qy[N]={1};
int main()
{
    int n=read();
    int l=1,h=0;
    for(int i=2;i<=n;i++)
    {
        for(int j=1;j<=l;j++)
        {
            int temp=qy[j-1]*i+h;
            qy[j-1]=temp%10;
            h=temp/10;
        }
        while(h)
        {
            l++;
            qy[l-1]=h%10;
            h/=10;
        }
    }
    for(int i=l-1;i>=0;i--) cout<<qy[i];
    cout<<endl;
}

 

posted @ 2019-07-30 13:39  Aaaa_mber  阅读(157)  评论(0编辑  收藏  举报