第四个点WA
查看原帖
第四个点WA
47305
TechnoMu楼主2021/8/7 17:21
#include<bits/stdc++.h>
using namespace std;

int ans[110],l_ans=0,a[110],b[110],l_a=0,l_b=1,c[110],l_c=1;

int main(){
	int n,tmp;
	b[1]=1;
	cin>>n;
	for(int i=1;i<=n;i++){
		tmp=i;
		l_a=0;
		while(tmp>0){
			a[++l_a]=tmp%10;
			tmp/=10;
		}
		for(int j=l_b;j>=1;j--){
			for(int k=l_a;k>=1;k--){
				c[j+k-1]+=b[j]*a[k];	
			} 
		}
		for(int j=1;j<l_a+l_b;j++){
			c[j+1]+=c[j]/10;
			c[j]%=10;
		}
		while(c[l_c+1]) l_c++;
		l_b=l_c;
		for(int j=1;j<=l_c;j++) b[j]=c[j];
		memset(c,0,sizeof(c));
		l_ans=max(l_c,l_ans);
		for(int j=1;j<=l_ans;j++){
			ans[j]+=b[j];
			if (ans[j]>9){
				ans[j+1]+=ans[j]/10;
				ans[j]%=10;
			}
		}
		if (ans[l_ans+1]) l_ans++;
	}
	for(int i=l_ans;i>=1;i--) cout<<ans[i];
	return 0;
}
2021/8/7 17:21
加载中...