题解 | #大数乘法#

大数乘法

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;
    }
};

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务