- 高精度乘法
- 2018-02-27 14:02:15 @
#include<bits/stdc++.h>
using namespace std;
char a1[10010],b1[10010];
int a[10010]={0},b[10010]={0},c[10010]={0};
int main()
{
long long lena,lenb,i,lenc,j;
scanf("%s",a1);
scanf("%s",b1);
lena=strlen(a1);
lenb=strlen(b1);
for(i=0;i<=lena;i++)
a[lena-i]=a1[i]-'0';
for(i=0;i<=lenb;i++)
b[lenb-i]=b1[i]-'0';
for(i=1;i<=lena;i++)
for(j=1;j<=lenb;j++)
c[i+j-1]=a[i]*b[j]+c[i+j-1];
lenc=lena+lenb;
for(i=1;i<=lenc;i++)
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[lenc]==0&&lenc>1){
lenc=lenc-1;
// cout<<c[i];
}
// cout<<lenc;
for(i=lenc;i>=1;i--)
cout<<c[i];
return 0;
}