c++ 刷题 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
string multiply(const string & num1, const string & num2)
{
if (num1 == "0" or num2 == "0")
{
return "0";
}
int len1 = num1.length();
int len2 = num2.length();
cout << len1 << endl;
cout << len2 << endl;
vector<int> num(len1 + len2, 0);
for (int i = len1 - 1; i >= 0; i--)
{
int t = num1[i] - '0';
for (int j = len2 - 1; j >= 0; j--)
{
int p = num2[j] - '0';
int sum = t * p;
num[i + j + 1] += sum % 10;
num[i + j] += (num[i + j + 1] / 10 + sum / 10);
num[i + j + 1] %= 10;
}
}
string a = "";
bool isbegin = false;
for (auto i : num) {
if(i != 0)
isbegin = true;
if (isbegin)
{
char t = i + '0';
cout << t << endl;
a += t;
}
}
return a;
}