class Solution {
public:
string multiply(string num1, string num2) {
if (num1=="0" || num2=="0") return "0";
string res="";
vector<vector<int> > product(num2.size());
int n=num2.size();
for (int j=n-1; j>=0; j--) {
int cur=0, c=0;
for (int i=0; i<n-1-j; i++) {
product[n-1-j].push_back(0);
}
for (int i=num1.size()-1; i>=0; i--) {
cur = (num1[i]-'0') * (num2[j]-'0') + c;
c = cur/10;
cur = cur%10;
product[n-1-j].push_back(cur);
}
if (c) product[n-1-j].push_back(c);
}
int c=0;
for (int i=0; i<product[n-1].size(); i++) {
int cur=0;
for (int j=0; j<n; j++) {
if (i<product[j].size()) cur +=product[j][i];
}
cur+=c;
c=cur/10;
cur=cur%10;
res.insert(0,1,cur+'0');
}
if (c) res.insert(0,1,c+'0');
return res;
}
};Multiply Strings
最新推荐文章于 2024-04-28 07:28:07 发布
本文介绍了一个使用 C++ 实现的字符串乘法算法。该算法能够处理两个大整数的乘法运算,通过将字符串形式的大整数转换为整数进行逐位相乘,并通过逐位累加的方式得到最终结果。
995

被折叠的 条评论
为什么被折叠?



