给出2个大整数A,B,计算A*B的结果。 Input第1行:大数A
第2行:大数B
(A,B的长度 <= 1000,A,B >= 0)
Output输出A * B
Sample Input
123456 234567
Sample Output
28958703552
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 1005
char a[N],b[N];
int s1[N],s2[N],s3[N*N];
int main()
{
int len1,len2,max,i,j;
while(scanf("%s%s",a,b)!=EOF)
{
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
memset(s3,0,sizeof(s3));
len1=strlen(a);
len2=strlen(b);
max=0;
max=len1+len2;
for(i=0,j=len1-1;i<len1;i++,j--)
s1[i]=a[j]-'0';
for(i=0,j=len2-1;i<len2;i++,j--)
s2[i]=b[j]-'0';
for(i=0;i<len1;i++)
for(j=0;j<len2;j++)
s3[i+j]+=s1[i]*s2[j];
for(i=0;i<max;i++)
{
if(s3[i]>=10)
{
s3[i+1]+=s3[i]/10;
s3[i]%=10;
}
}
while(s3[max-1]==0)
{
if(s3[max-1]==0)
max--;
}
for(i=max-1;i>=0;i--)
printf("%d",s3[i]);
printf("\n");
}
return 0;
}