- 高精度乘法
- 2016-10-29 10:04:13 @
#include<bits/stdc++.h>
using namespace std;
char A[500000000],B[50000000];
int a[50000000],b[50000000],c[50000000];
int main()
{
int i,j,k=0,n,m,x;
long long l;
cin>>A>>B;
n=strlen(A); m=strlen(B);
strrev(A); strrev(B);
memset(a,0,sizeof(a)) ; memset(b,0,sizeof(b)) ; memset(c,0,sizeof(c)) ;
for(i=0;i<n;i++) a[i]=A[i]-48; for(i=0;i<m;i++) b[i]=B[i]-48;
k=0;
for (i=0;i<n;i++)
for (j=0;j<m+1;j++)
{
c[i+j] = c[i+j] + a[i] * b[j] +k;
k= c[i+j] / 10 ;
c[i+j] = c[i+j] % 10 ;
}
k=22000;
while (c[k]==0) k--;
for(i=k;i>=0;i--) cout<<c[i];
cout<<endl;
return 0;
}
0 条评论
目前还没有评论...