#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 3000;
int ans[MAXN];//0个位,1十位...
int main(){
int n;
cin>>n;
memset(ans,0,sizeof(ans));//数组置为0
ans[0] = 1;
//做乘法
for(int i=2; i<=n; i++){
int c = 0;//保存进位
for(int j=0; j<MAXN; j++){
int temp = ans[j]*i+c;//每个数都要与i相乘
ans[j] = temp%10;
c = temp/10;
}
}
//输出
int i;
for(i=MAXN-1; i>=0; i--) if(ans[i]) break;//过滤前面的0
for(int j=i; j>=0; j--) cout<<ans[j];
return 0;
}
C++计算阶乘(大数)
最新推荐文章于 2025-03-08 10:52:59 发布