- 高精度乘法
- 2015-07-08 17:32:04 @
我没压都过了。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int a[10010],b[10010],c[20020];
long int la,lb,lc;
string s;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
getline(cin,s);
la=s.size();
for(int i=la,j=0;i>0;a[++j]=s[--i]-'0');
getline(cin,s);
lb=s.size();
for(int i=lb,j=0;i>0;b[++j]=s[--i]-'0');
lc=la+lb;
for(int i=1;i<=la;i++)
for(int j=1;j<=lb;j++)
c[i+j-1]+=a[i]*b[j];
for(int k=1;k<lc;k++)
{
c[k+1]+=c[k]/10;
c[k]%=10;
}
for(;(c[lc]==0)&&(lc>1);lc--);
for(;lc>0;cout<<c[lc--]);
return 0;
}