这个是同学写的大数相乘的代码,感觉很好,就要了过来。。。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char p1[200];
char p2[200];
int num1[200];
int num2[200];
int result[200];
int main ()
{
int t;
int i, j, a, b;
scanf("%d", &t);
getchar();
while(t--)
{
scanf("%s", p1);
scanf("%s", p2);
a = strlen(p1);
b = strlen(p2);
for(i=0; i<a; i++)
num1[i] = p1[a-i-1] - '0';
for(i=0; i<b; i++)
num2[i] = p2[b-i-1] - '0';
memset(result, 0, sizeof(result));
for(i=0; i<a; i++)
{
for(j=0; j<b; j++)
{
result[i+j] += num1[i] * num2[j];
if(result[i+j] >= 10)
{
result[i+j+1] += result[i+j] / 10;
result[i+j] = result[i+j] % 10;
}
}
}
for(i=199; i>=0; i--)
{
if(result[i] != 0)
break;
}
for(j=i; j>=0; j--)
printf("%d", result[j]);
printf("\n");
}
return 0;
}