2-4 大整数乘法
void bigNum(string a, string b)
{
int a_length = a.size();
int b_length = b.size();
int* tmp = new int[a_length + b_length];
for (int i = 0; i < a_length + b_length; i++)
{
tmp[i] = 0;
}
int* C = new int[a_length + b_length];
for (int i = 0; i < b_length; i++)
{
for (int j = 0; j < a_length; j++)
{
tmp[j + i] = tmp[j + i] + (int(b[i]) - 48)*(int(a[j]) - 48);
}
}
int k = 0;
for (int i = a_length + b_length - 2; i >= 0; i--)
{
if (tmp[i] >= 10 && i >= 1)
{
tmp[i - 1] = tmp[i - 1] + tmp[i] / 10;
C[k] = tmp[i] % 10;
k++;
}
else if (tmp[i] < 10 && i >= 1)
{
C[k] = tmp[i];
k++;
}
else
{
if (tmp[0] >= 10)
{
C[k] = tmp[0] % 10;
k++;
C[k] = tmp[0] / 10;
}
else
C[k] = tmp[0];
}
}
cout << "两数相乘的结果是:";
for (int h = k; h >= 0; h--)
{
cout << C[h] << "";
}
cout << endl;
system("pause");
}