求助!最后两个测试点WA!
  • 板块P1303 A*B Problem
  • 楼主PvZ_Hsy
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/6 16:43
  • 上次更新2025/1/7 09:52:52
查看原帖
求助!最后两个测试点WA!
1490041
PvZ_Hsy楼主2025/1/6 16:43
#include <bits/stdc++.h>
using namespace std;
string add(string a,string b){
    int n=0,al=a.size(),bl=b.size();
    if(al>bl) for(int i=1;i<=al-bl;i++) b="0"+b;
    else if(al<bl) for(int i=1;i<=bl-al;i++) a="0"+a;
    string s((al>bl?al:bl),'0');
    for(int i=(al>bl?al:bl)-1;i>=0;i--){
    	s[i]=(a[i]-'0')+(b[i]-'0')+n+'0';
	    n=s[i]>'9'?1:0;
	    s[i]-=(s[i]>'9'?10:0);
    }if(n==1) s="1"+s;
    return s;
}
string mul(string a,string b){
	if(a=="0" or b=="0") return "0";
	int n=0,al=a.size(),bl=b.size();
	string m,s="0";
	for(int x=al-1;x>=0;x--){
		m=b;
		for(int y=bl-1;y>=0;y--){
			m[y]=(a[x]-'0')*(m[y]-'0')+n+'0';
			n=(m[y]-'0')/10;
			m[y]=(m[y]-'0')%10+'0';
		}if(n!=0){m="0"+m;m[0]=n+'0';n=0;}
		for(int i=1;i<=al-x-1;i++) m=m+"0";
		s=add(m,s);
	}
	return s;
}
int main(){
	string a,b;
	cin>>a>>b;
	cout<<mul(a,b);
	return 0;
}

2025/1/6 16:43
加载中...