#define MAX_INPUT_SIZE 10000
#define MAX_RESULT_SIZE (MAX_INPUT_SIZE * 2 - 1)
char a[MAX_INPUT_SIZE],b[MAX_INPUT_SIZE],res[MAX_RESULT_SIZE];
void mult(char result[], char a[], char b[])//res一定要清空
{
int al, bl; // a length, b length
int ri, ai, bi; // r index, a index, b index
char tmp, carry;
al = strlen(a);
bl = strlen(b);
carry = 0;
for (bi = bl-1; bi >= 0; bi--)
{
for (ai = al-1; ai >= 0; ai--)
{
ri = (bl-1-bi) + (al-1-ai);
tmp = (a[ai]-'0') * (b[bi]-'0') + result[ri] + carry;
result[ri] = tmp % 10;
carry = tmp / 10;
}
while (carry)
{
ri++;
tmp = result[ri] + carry;
result[ri] = tmp % 10;
carry = tmp / 10;
}
}
int i = MAX_RESULT_SIZE - 1;
while (!result[i]) i--;
while (i >= 0) result[i--] += '0';
}
void print(char result[])
{
int i = MAX_RESULT_SIZE - 1;
while (!result[i]) i--;
while (i >= 0) putchar(result[i--] + '0');
putchar('\n');
}