ac

 •  10小时前


include<bits/stdc++.h>

using namespace std; int n; long long a[100]={1},b[100]={0}; int main(){

cin>>n;
int carry=0;
a[0]=1;
int alen=1;
for(int j=0;j<n;j++){
	int t=b[j]+a[j]+carry;
	b[j]=t%10;
	carry=t/10;
}
int blen=1;
for(int i=2;i<=n;i++){
	carry=0;
	for(int j=0;j<alen;j++){
		long long tmp=a[j]*i+carry;
		a[j]=tmp%10;
		carry=tmp/10;
	}
	while(carry>0){
		a[alen]=carry%10;
		carry/=10;
		alen++;
	}
	carry=0;
	int maxlen=max(alen,blen);
	for(int j=0;j<maxlen;j++){
		int t=b[j]+a[j]+carry;
		b[j]=t%10;
		carry=t/10;
	}
	if(carry>0){
		b[maxlen]=carry;
		blen=maxlen+1;
	}else{
		blen=maxlen;
	}
}
for(int i=blen-1;i>=0;i--){
	cout<<b[i];
}  
return 0;

}


评论:

请先登录,才能进行评论