- 分享
高精度减法函数
- @ 2024-4-19 16:13:38
`
bool cmp(string a, string b){
int lena = a.length();
int lenb = b.length();
if(lena != lenb) return lena > lenb;
for(int i=0;i<lena;i++){
if(a[i] != b[i]) return a[i]>b[i];
}
return 1;
}
string jian(string a1,string b1){
string c1="";
int a[10000]={},b[10000]={},c[10000]={};
if(cmp(a1,b1)==0){
cout<<"-";
string t = a1; a1 = b1; b1 = t;
}
int lena = a1.length();
int lenb = b1.length();
int lenc = lena;
for(int i=0;i<lena;i++){
a[i] = a1[lena-1-i]-'0';
}
for(int i=0;i<lenb;i++){
b[i] = b1[lenb-1-i]-'0';
}
for(int i=0;i<lenc;i++){
c[i] = a[i] - b[i];
if(c[i]<0){
c[i] += 10;
a[i+1]--;
}
}
while(c[lenc-1]==0 && lenc>1) lenc--;
for(int i=lenc-1;i>=0;i--){
c1=c1+char(c[i]+48);
}
return c1;
}
0 条评论
目前还没有评论...