程序员技术干货程序猿阵线联盟-汇总各类技术干货

大数乘法

2018-04-09  本文已影响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";
    }
};
上一篇下一篇

猜你喜欢

热点阅读