题目链接:https://leetcode.cn/problems/multiply-strings/
题目如下:
class Solution {
public:
string multiply(string num1, string num2) {
string res="";
int n1=num1.size(),n2=num2.size();
vector<int> vtr(n1+n2);
for(int i=0;i<n1;i++){
for(int j=0;j<n2;j++){
vtr[i+j+1]+=(num1[i]-'0')*(num2[j]-'0');//记录两个数各个位相乘的数,这里先不管是否进位
}
}
int carry=0;//对可能的进位作处理
for(int i=n1+n2-1;i>=0;i--){
vtr[i]+=carry;
carry=vtr[i]/10;
vtr[i]%=10;
}
//以防全0的情况
int i;
for(i=0;i<n1+n2;i++) if(vtr[i]==0) ;else break;
if(i==n1+n2) return "0";
for(;i<n1+n2;i++) res.push_back(vtr[i]+'0');
return res;
}
};