- 分享
高精度减法函数
- @ 2024-4-19 16:12:18
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 条评论
目前还没有评论...