大数阶乘

#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;
}

 

posted @ 2025-07-09 21:47  Annaprincess  阅读(6)  评论(0)    收藏  举报