/************************************************************************/
/* 大数相乘,两个字符串进行大数相乘
@Para1 first 第一个数
@Para1 second 第二个数
@author zkf */
/************************************************************************/
int* biggitMult(char* first,char* second)
{
int first_len = strlen(first);
int secon_len = strlen(second);
//用来存储大数中每一位相乘后得到的数据
int* buffer = (int*)malloc(sizeof(first_len+secon_len));
int int_first = 0, int_second = 0;
int temp = 0;
int index = 0;
int i = 0,j = 0;
memset(buffer,0,(first_len+secon_len)*sizeof(int));
for ( ; i<secon_len;i++)
{
for (;j<first_len;j++)
{
//要将用户输入的进行转置
int_first = first[first_len-j-1]-'0';
int_second = second[secon_len-i-1]-'0';
temp = int_first*int_second;
//存储每位相乘后的数据
buffer[i+j]+= temp;
}
j = 0;
}
//从总体上面对buffer中的每位进行累加和移位
for (i = 0;i<first_len+secon_len;i++)
{
buffer[i] +=index;
index = buffer[i] /10;
buffer[i] = buffer[i]%10;
}
//打印出所要的数据
for (i=first_len+secon_len-1;i>-1;i--)
{
printf("%d/t",buffer[i]);
}
// printf()
return buffer;
}