本文共 1031 字,大约阅读时间需要 3 分钟。
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
class Solution { public: string multiply(string num1, string num2) { vector ass(300,0); string res; int pos = 299;//两个不超过110位 if(num1.size() == 0 || num2.size()==0) return ""; if(num1 == "0" || num2 == "0") return "0"; for(int i = num1.size()-1; i >= 0;i--){ for(int j = num2.size()-1; j >= 0;j--){ int k = (num1[i]-'0')*(num2[j]-'0'); ass[num1.size()-1+num2.size()-1-i-j] += k; ass[num1.size()-1+num2.size()-i-j] += ass[num1.size()-1+num2.size()-1-i-j]/10; ass[num1.size()-1+num2.size()-1-i-j] %= 10; } } while(ass[pos] == 0) { pos--; } while(pos >= 0){ res.push_back(ass[pos]+'0'); pos--; } return res; }};
通过时间:
转载地址:http://zsemb.baihongyu.com/