题解 | #大数乘法#
大数乘法
https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571
class Solution {
public:
string solve(string s, string t) {
string res;
int tmp=0;
reverse(begin(s),end(s)); //反转数组,从低位开始计算
reverse(begin(t),end(t));
vector<int> v(s.size()+t.size()); //初始化size(s+t)个0
for(int i=0;i<s.size();i++){ //将同位两数之积加到同一数组位
for(int j=0;j<t.size();j++){
v[i+j]+=(s[i]-'0')*(t[j]-'0');
}
}
for(auto& i:v){ //遍历数组
tmp+=i;
res+=tmp%10+'0'; //将数组中元素放入对应字符串位置
tmp/=10;
}
while(res.size()>1&&res.back()=='0')res.pop_back(); //删除字符串前多余的0
reverse(begin(res),end(res));
return res;
}
};
