就是写个高精度乘法函数,但结果输出老实多几个'0',不知道怎么回事
代码
#include<bits/stdc++.h>
using namespace std;
int ss[105],xx[105],anss[505];
string cheng(string s,int x)
{
int len_a,len_b,len,carry=0,i,j;
len_a=s.size();
for(i=0;i<len_a;i++) ss[i]=s[len_a-1-i]-'0';
int f_s=x;
while(f_s)
{
xx[i]=f_s%10;
i++;
f_s/=10;
}
len_b=i;
for(i=0;i<len_b;i++)
{
for(j=0;j<len_a||carry!=0;j++)
{
anss[i+j]+=ss[j]*xx[i]+carry;
carry=anss[i+j]/10;
anss[i+j]%=10;
}
}
len=i+j;
while(anss[len]==0&&len>0) len--;
string hsans="";
for(i=len;i>=0;i--){
hsans=hsans+char(anss[i]+'0');
}
return hsans;
}
int main(){
cout<<cheng("4321",1234);
return 0;
}