大数乘法

作者: 小太阳花儿 | 来源:发表于2018-04-09 18:57 被阅读33次

    其实大数乘法就是在考虑大数加法的进位的同时,考虑字符串num1和字符串num2相乘时,每一位所在的位置,以及加法运算中多了一个乘法项。

    可运行的cpp代码
    class Solution {
    public:
        string multiply(string num1, string num2) {
            string res(num1.size()+num2.size(),'0');
            
            for(int i=num1.size()-1;i>=0;i--)
            {
                int counter=0;
                for(int j=num2.size()-1;j>=0;j--)
                {
                    int temp = res[i+j+1]-'0' + (num1[i]-'0')*(num2[j]-'0')+counter;
                    res[i+j+1] = temp%10 + '0';
                    counter = temp/10;
                }
                res[i] = counter + '0';
            }
            
            size_t found = res.find_first_not_of("0");
            if(found!=string::npos)
            {
                return res.substr(found);
            }
            return "0";
        }
    };
    

    相关文章

      网友评论

        本文标题:大数乘法

        本文链接:https://www.haomeiwen.com/subject/qptwhftx.html