#include<bits/stdc++.h>
using namespace std;
const int maxn = 50000;
int f[maxn];//用于存放得到阶乘后每一个数字。
int main(){
int i,j,n;
while(~scanf("%d",&n)){
memset(f,0,sizeof(f));
f[0]=1;
//小于2的阶乘都为1
for(i=2;i<=n;i++){
int c=0; //进位
for(j=0;j<maxn;j++){//这里是未知得n!的长度 。
int s=f[j]*i+c;
f[j]=s%10;
c=s/10;
}
}
for(i=maxn-1;i>=0;i--) if(f[i]) break;//数字是倒着存入的,遇到数即可输出
for(j=i;j>=0;j--) cout<<f[j];
cout<<endl;
}
return 0;
}
蓝桥杯 试题 基础练习 阶乘计算
最新推荐文章于 2022-03-23 18:21:27 发布