class Solution
{
public:
string multiply(string num1, string num2)
{
vector<int> a, b;
int len1 = num1.size(), len2 = num2.size();
for (int i = len1 - 1; i >= 0; i--)
a.push_back(num1[i] - '0');
for (int i = len2 - 1; i >= 0; i--)
b.push_back(num2[i] - '0');
vector<int> v3(len1 + len2);
for (int ai = 0; ai < len1; ai++)
{
for (int bi = 0; bi < len2; bi++)
v3[ai + bi] += a[ai] * b[bi];
}
int t = 0; //存贮进位
for (int i = 0; i < v3.size(); i++)
{
t += v3[i];
v3[i] = t % 10;
t /= 10;
}
int k = v3.size() - 1;
while (k > 0 && v3[k] == 0)
k--;
string s;
while (k >= 0)
s += v3[k--] + '0';
return s;
}
};
43. 字符串相乘
最新推荐文章于 2024-05-21 21:19:51 发布