{
if((x.size()<y.size())||(x.size()==y.size()&&x.compare(y)<0))
{
string s;
s=x;
x=y;
y=s;
}
if(y.compare("0")==0)
{
string ss="0";
return ss;
}
int len1=x.size();
int len2=y.size();
reverse(x.begin(),x.end());
reverse(y.begin(),y.end());
string str;
int ans[90000];
memset(ans,0,sizeof(ans));
for(int i=0;i<len2;i++)
{
for(int j=0;j<len1;j++)
{
ans[i+j]+=(x[j]-'0')*(y[i]-'0');
}
}
int cnt=len1+len2;
for(int i=0;i<cnt;i++)
{
ans[i+1]+=(ans[i]/10);
ans[i]=ans[i]%10;
}
int k=0;
for(int i=cnt;i>=0;i--)
{
if(ans[i]!=0)
k=1;
if(ans[i]==0&&k==0)
continue;
char ch=(char)(ans[i]+'0');
str+=ch;
}
return str;
}
c++乘法
最新推荐文章于 2024-04-21 20:02:05 发布