class Solution {
public:
string multiply(string num1, string num2) {
int n=num1.size();
int m=num2.size();
string ans="";
if(!n||!m)
return ans;
int vt[n+m+1];
memset(vt,0,sizeof(vt));
int i,j,k;
for(i=n-1;i>=0;i--)
{
k=n-1-i;
int cnt=0;
for(j=m-1;j>=0;j--)
{
int tmp=(num1[i]-'0')*(num2[j]-'0')+cnt+vt[k];
vt[k]=tmp%10;
cnt=tmp/10;
k++;
}
if(cnt)
vt[k]+=cnt;
}
for(i=n+m;vt[i]==0;i--);
for(;i>=0;i--)
{
ans+=to_string(vt[i]);
}
if(ans=="")
ans="0";
return ans;
}
};43. Multiply Strings
本文介绍了一种使用 C++ 实现两个大整数相乘的方法。通过定义一个 Solution 类,并在其中实现 multiply 函数来完成字符串形式的大整数乘法运算。该方法能够有效地处理任意长度的数字字符串,通过逐位相乘并累加的方式得到最终结果。

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



