我看题解区里的大佬们都只写了二十几行,那么我这个只能算是“口胡的”(切记不要跟风玩梗)。有一个重要原因:大佬们都是把递推公式直接套到高精度里,我却没这么做。
首先,把高精度写好(注意在加之前要先弄成长度一样):
string add(string str1,string str2)
{
string str;
int len1=str1.length();
int len2=str2.length();
if(len1<len2)
{
for(int i=1;i<=len2-len1;i++)
str1="0"+str1;
}
else
{
for(int i=1;i<=len1-len2;i++)
str2="0"+str2;
}
len1=str1.length();
int cf=0;
int temp;
for(int i=len1-1;i>=0;i--)
{
temp=str1[i]-'0'+str2[i]-'0'+cf;
cf=temp/10;
temp%=10;
str=char(temp+'0')+str;
}
if(cf!=0) str=char(cf+'0')+str;
return str;
}
然后主函数部分就比较简单了: