一段任意长数相乘函数
欢迎来拍板。修正。谢谢。
char* Multiply(char *a, char *b, char **ret)
{
int length_a = strlen(a);
int length_b = strlen(b);
int temp = 0;
int i = 0;
int j = 0;
int index = length_a + length_b;
char *sum = new char[index];
memset(sum, '0', index);
for (j= length_b-1; j >= 0; j--)
{
for (i= length_a-1,index = length_a + j; i >= 0; i--,index--)
{
int atemp = a[i] - '0';
int btemp = b[j] - '0';
temp = atemp * btemp + (sum[index]-'0');
if (temp >= 10)
{
sum[index-1] = ((temp/10) +'0') + (sum[index-1] -'0');
sum[index] = (temp%10) +'0';
}
else
{
sum[index] = temp + '0';
}
}
}
//for test result
for (index = 1; index<= length_a+length_b; index++)
{
cout<<sum[index];
}
cout<<endl;
return *ret = sum;
}