#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=4005;
string mul(string str1,string str2);
int main(){
//freopen("in.txt","r",stdin);
string a,b;
cin>>a>>b;
cout<<mul(a,b)<<endl;
return 0;
}
string mul(string str1,string str2){
int len1=str1.size();
int len2=str2.size();
string str="";
int i,j,a[maxn],b[maxn],c[maxn];
for(i=0;i<len1;i++)a[i]=int(str1[len1-1-i]-'0');//倒序方便进位
for(i=0;i<len2;i++)b[i]=int(str2[len2-1-i]-'0');
for(i=0;i<len1;i++){
for(j=0;j<len2;j++){
c[i+j]+=a[i]*b[j];//用+=否则进位被覆盖
c[i+j+1]+=c[i+j]/10;
c[i+j]=c[i+j]%10;
}
}
int len3=len1+len2;
while(len3>1&&c[len3-1]==0)len3--;
for(i=0;i<len3;i++)str=char(c[i]+'0')+str;
//for(int i=len3-1;i>=0;i--) printf("%d",c[i]);
return str;
}
高精度乘法--速度较快
最新推荐文章于 2023-04-05 16:06:55 发布