最近做了一些高精度计算问题,一般来说解题办法都差不多,都是通过字符串来操作的,下面是解题模板。
//清零操作
string clearstr(string s){
if(s=="")
return s="0";
while(s.length()>0&&s[0]==‘0’)
s.erase(0,1);//删除第一个零;
if(s=="")
return s="0";
else
return s;
}
//加班操作
string addition(string s1,string s2){
string s;
while(s1.length()>s2.length())
s2='0'+s2;
while(s2.length()>s1.length())
s1='0'+s1;
//两个数都加0,防止进位溢出。
s1='0'+s1;
s2='0'+s2;
for(int j=s2.length()-1;j>=0;j--){
s1[j]=s1[j]+(s2[j]-'0');
if(s1[j]>'9'){
s1[j] = s1[j]-10;
s1[j-1]=s[j-1]+1;
}
}
s=clearstr(s1);
return s;
}
//减法操作