在我问了3次之后,把高精加的主体代码写出来了。 但是前导零不会去······
#include<bits/stdc++.h>
//#define bug
using namespace std;
int main()
{
string a,b;
cin>>a;
cin>>b;
int lena=a.size(),lenb=b.size();
#ifdef bug
printf("%s %d\n%s %d\n",a.c_str(),lena,b.c_str(),lenb);
#endif
string stra="",strb="",strc="";
int len=max(lena,lenb);
if(lena<lenb)
for(int i=1;i<=lenb-lena;i++)
a="0"+a;
else
for(int i=1;i<=lena-lenb;i++)
b="0"+b;
for(int i=len-1;i>=0;i--)
stra+=a[i];
for(int i=len-1;i>=0;i--)
strb+=b[i];
#ifdef bug
printf("%s\n%s\n",stra.c_str(),strb.c_str());
#endif
int x=0;
for(int i=0;i<len;i++)
{
int t=stra[i]-'0'+strb[i]-'0'+x;
x=t/10;
t%=10;
strc=char(t+'0')+strc;
}
if(x!=0)
strc=char(x+'0')+strc;
#ifdef bug
printf("%s\n",strc.c_str());
#endif
int ans=-1;
while(len>1 && strc[++ans]=='0')
{
strc.erase(0,1);
#ifdef bug
printf("%s\n",strc.c_str());
#endif
}
printf("%s",strc.c_str());
return 0;
}
诉求:帮我改下去前导零的代码