乘法高精度
c++中,“ * ”的范围不够大,所以要用到高精度,代码如下:
#include<bits/stdc++.h>
using namespace std;
char a[205],b[205];
int sa[205],sb[205],ans[205],ca,cb,l;
int main()
{
cin>>a;
cin>>b;
ca=strlen(a);
cb=strlen(b);
for(int i=0;i<ca;i++)
sa[ca-i]=a[i]-48;
for(int i=0;i<cb;i++)
sb[cb-i]=b[i]-48;
int e=0;
for(int i=1;i<=ca;i++)
{
l=0;
for(int j=1;j<=cb;j++)
{
ans[i+j-1]+=sa[i]*sb[j]+l;
l=ans[i+j-1]/10;
ans[i+j-1]%=10;
}
ans[i+cb]=l;
}
int k=ca+cb;
if(ans[k]==0)
k--;
for(int i=k;i>=1;i--)
{
cout<<ans[i];
}
return 0;
}//一天写这么多文章的,也只有我了