超时代码求改QWQ(新手已死亡)为啥string会超时啊?
查看原帖
超时代码求改QWQ(新手已死亡)为啥string会超时啊?
1603863
GrayphenDyxen楼主2024/12/6 18:29

用的string,改过数组大小(都改成了20),但是连1*2都算不出来

#include <bits/stdc++.h>
using namespace std;
string s1="";
string s2="";
int a[100010]={0};
int b[100010]={0};
int c[10001000]={0};
int main(){
	cin>>s1>>s2;
	for (int i=0;i<s1.size();i++){
		a[i]=s1[s1.size()-1-i]-48;
	}
	for (int i=0;i<s2.size();i++){
		b[i]=s2[s2.size()-1-i]-48;
	}	
	for (int i=0;i<s2.size();i++){
		for (int j=0;j<s1.size();i++){
			c[j+i]=c[j+i]+a[j]*b[i];
			if (c[j+i]>=10){
				c[j+i+1]+=c[j+i]/10;
				c[j+i]=c[j+i]%10;
			}
		}
	}
	int index=0;
	int len=s1.size()+s2.size();
	for (int i=len-1;i>0;i--){
		if (c[i]!=0){
			index=i;
			break;
		}
	}
	for (int i=index;i>=0;i--){
		cout<<c[i];
	}	
}
2024/12/6 18:29
加载中...