与大数加法类似,大数乘法如下:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
char chara[50010];
char charb[50010];
int a[50010];
int b[50010];
int c[100010];
int main()
{
int i,j,lena,lenb;
while(gets(chara)!=NULL&&gets(charb)!=NULL)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
lena=strlen(chara);lenb=strlen(charb);
for(j=0,i=lena-1; i>=0; i--) a[j++]=chara[i]-'0';
for(j=0,i=lenb-1; i>=0; i--) b[j++]=charb[i]-'0';
for(i=0; i<lena; i++)
for(j=0; j<lenb; j++)
c[i+j]=a[i]*b[j];
for(i=0; i<100000; i++)
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
for(i=100000; (c[i]==0)&&(i>=0); i--);
if(i>=0)
for(; i>=0; i--)
printf("%d",c[i]);
else printf("0");
printf("\n");
}
return 0;
}