题解 | #大数乘法#
大数乘法
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; } };