大数阶乘
#include<bits/stdc++.h>
using namespace std;
int data[3200];
int main(){
int digit=1;//当前位数
data[0]=1;//0的阶乘
data[1]=1;//1的阶乘
int n;
cin>>n;
for(int i=1;i<n+1;i++){//n的阶乘
for(int j=1;j<digit+1;j++) {//每一位乘以i
data[j]*=i;
}
//处理每一位进位问题
for(int j=1;j<digit+1;j++){
if(data[j]>9) {//当前位大于9进位
for(int r=1;r<digit+1;r++){
if(data[digit]>9) {//最高位进位
digit++;
}
data[r+1]+=data[r]/10;
data[r]%=10;
}
}
}
}
for(int i=digit;i>=1;i--){
cout<<data[i];
}
return 0;
}

浙公网安备 33010602011771号