void multiply()
{
char str1[1000],str2[1000];
cin>>str1>>str2;
int len1 = strlen(str1);
int len2 = strlen(str2);
int len = len1 + len2 + 1;
int *A = new int[len1];
int *B = new int[len2];
int *C = new int[len];
for(int i=0;i<len1;i++)
A[i] = str1[len1-i-1]-'0';
for(int i=0;i<len2;i++)
B[i] = str2[len2-i-1]-'0';
for(int i=0;i<len;i++)
C[i] = 0;
bool flag = false;
for(int i=0;i<len1;i++)
for(int j=0;j<len2;j++)
C[i+j] += A[i] * B[j];
for(int i=0;i<len;i++)
{
if(C[i]>9)
{
C[i+1] += C[i]/10;
C[i] %= 10;
}
}
for(int i = len-1; i>=0;i--)
if(flag)
cout<<C[i];
else if(C[i]!=0)
{
cout<<C[i];
flag = true;
}
delete []A;
delete []B;
delete []C;
}
大数乘法
最新推荐文章于 2024-08-29 20:40:47 发布