宝灵求助
查看原帖
宝灵求助
754021
fish_love_cat楼主2022/10/19 13:23

RT。。。

#include<bits/stdc++.h>
using namespace std;
string ans="0",s;
string jia(string s1,string s2){
    string ss;
    int top=0;
	int flag=0,a[505]={},b[505]={},c[505]={},s1len=s1.length(),s2len=s2.length();
	int leng=(s1len>s2len?s1len:s2len);
	for(int i=0;i<=s1len-1;i++){
		a[i]=s1[i]-'0';
	} 
	for(int i=0;i<=s2len-1;i++){
		b[i]=s2[i]-'0';
	}
	for(int i=0;i<leng;i++){
		c[i]=a[i]+b[i]+flag;
		flag=0;
		if(c[i]>9){
			flag=1;
			c[i]%=10;
		}
	}
	if(flag){
		ss+="1";
		top++;
	}
	for(int i=leng-1;i>=0;i--){
		ss[top++]=c[i]+'0';
	}
	return ss;
}
string cheng(int xx){
    string x=to_string(xx);
	int slen=s.length(),xlen=x.length();
	reverse(s.begin(),s.end());
	reverse(x.begin(),x.end());
	int a[100]={},b[100]={},c[1000]={};
	for(int i=1;i<=slen;i++){
		a[i]=s[i-1]-'0';
	}
	for(int i=1;i<=xlen;i++){
		b[i]=x[i-1]-'0';
	}
	reverse(s.begin(),s.end());
	for(int i=1;i<=slen;i++){
		for(int j=1;j<=xlen;j++){
			c[i+j-1]+=a[i]*b[j];
			c[i+j]+=c[i+j-1]/10;
			c[i+j-1]%=10;
		}
	}
	int leng=slen+xlen,top=0;
	if(c[leng]!=0) leng++;
	string ss;
	for(int i=leng-1;i>0;i--){
		ss[top++]=c[i]+'0';
	}
	s=ss;
	return s;
}
int main(){
    int n;
    cin>>n;
    s="1";
    for(int i=2;i<=n;i++){
        ans=jia(ans,cheng(i));
    }
    cout<<ans;
    return 0;
}

c⌒っ゚Д゚)っ救命

2022/10/19 13:23
加载中...