大数阶乘
描述
-
输入
- 输入一个整数m(0<m<=5000) 输出
- 输出m的阶乘,并在输出结束之后输入一个换行符 样例输入
-
50
样例输出
-
30414093201713378043612608166064768844377641568960512000000000000
-
代码:
-
#include<stdio.h> #include<string.h> const int maxn=20000; int f[maxn]; int main() { int i,j,n; scanf("%d",&n); memset(f,0,sizeof(f)); f[0]=1; for(i=2;i<=n;i++) { int c=0; for(j=0;j<maxn;j++) { int s=f[j]*i+c; c=s/10;//记录进位 f[j]=s%10; } } for(j=maxn-1;j>=0;j--) if(f[j])//去除前面多余的0 break; for(i=j;i>=0;i--) printf("%d",f[i]); printf("\n"); }