大数相乘

void Mult(char fal[],char a[],char b[])  
{
int i,j,len1,len2,afal[210];
len1=strlen(a);
len2=strlen(b);
memset(fal,0,sizeof(fal));
memset(afal,0,sizeof(afal));
for(i=len1-1;i>=0;i--)
{
for(j=len2-1;j>=0;j--)
afal[len1+len2-i-j-2]+=(a[i]-'0')*(b[j]-'0');
}

for(i=0;i<len1+len2;i++)
{
if(afal[i]>9)
{
afal[i+1]+=afal[i]/10;
afal[i]=afal[i]%10;
}
}
bool t=0;
j=0;
for(i=len1+len2;i>=0;i--)
{
if(t)
fal[j++]=afal[i]+'0';
else if(afal[i])
{
fal[j++]=afal[i]+'0';
t=1;
}
}
fal[j]=0;
if(t==0) strcpy(fal,"0");
}
原文地址:https://www.cnblogs.com/qiufeihai/p/2329737.html