求助
查看原帖
求助
1125699
lhyjiy楼主2024/10/4 09:20
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
using namespace std;
vector<int> a;
int b[1000050];
int main(){
	int n;cin>>n;
	a.push_back(1);
	int cnt;
	for(int i=1;i<=n;i++){
		cnt=a.size()+3;
		for(int j=0;j<cnt;j++){
			a[j]*=i;
			if(a[j]>=100){
				a[j+2]+=a[j]/100;
				a[j+1]+=a[j]/10;
				a[j]%=10;
			}
			else if(a[j]>=10){
				a[j+1]+=a[j]/10;
				a[j]%=10;
			}
		}
		cnt++;
		for(int j=0;j<cnt;j++){
			b[j]+=a[j];
			b[j+1]+=b[j]/10;
			b[j]%=10;
		}
	}
	cnt++;
	while(b[cnt]==0) cnt--;
	for(int i=0;i<cnt;i++)
		cout<<b[i];
	return 0;
}
2024/10/4 09:20
加载中...