Given two non-negative integers num1
and num2
represented as strings, return the product of num1
and num2
, also represented as a string.
Example 1:
Input: num1 = "2", num2 = "3" Output: "6"
Example 2:
Input: num1 = "123", num2 = "456" Output: "56088"
Note:
- The length of both
num1
andnum2
is < 110. - Both
num1
andnum2
contain only digits0-9
. - Both
num1
andnum2
do not contain any leading zero, except the number 0 itself. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
解题思路:
按照数乘进行计算
class Solution {
public:
string multiply(string num1, string num2) {
string ans(num1.size()+num2.size(),'0');
for(int i=num2.size()-1;i>=0;i--)
{
int sum=0;
for(int j=num1.size()-1;j>=0;j--)
{
int tmp=(num2[i]-'0')*(num1[j]-'0');
sum+=tmp+(ans[i+j+1]-'0');
ans[i+j+1]=sum%10+'0';
sum=sum/10;
}
ans[i]+=sum;
}
for(int i=0;i<num1.size()+num2.size();i++)
if(ans[i]!='0')
return ans.substr(i);
return "0";
}
};