#include<bits/stdc++.h>
using namespace std;
long long res[10002];
const long long d=1e+9;
int main(){
long long num;
long long val,temp1,temp2;
while(scanf("%d",&num)!=EOF){
long long c=0;
if(num==0||num==1) printf("1\n");
else{
res[0]=1;
val=1;
for(int i=2;i<=num;i++){
for(int j=0;j<val;j++){
temp1=res[j]*i+c;
if(temp1<d){
res[j]=temp1;
c=0;
}
else{
res[j]=temp1%d;
c=temp1/d;
}
}
while(c!=0){
res[val++]=c%d;
c/=d;
}
}
printf("%d",res[val-1]);
for(int i=val-2;i>=0;i--) printf("%09lld",res[i]);
printf("\n");
}
}
return 0;
}
C++大数阶乘
最新推荐文章于 2023-07-28 11:45:11 发布