2222
2025-07-13 17:18:24
发布于:北京
//高精度减法
#include <bits/stdc++.h>
using namespace std;
stack <char> sta;
bool f;
string j(string s1,string s2){
string r;
if(s1.length() < s2.length() or s1.length() == s2.length() and s1 < s2){
f = 1;
swap(s1,s2);
}
int len = max(s1.length(),s2.length());
s1.insert(0,len - s1.length(),'0');
s2.insert(0,len - s2.length(),'0');
for(int i = len - 1;i >= 0;i --){
int ans = s1[i] - s2[i];
if(ans < 0){
ans += 10;
s1[i - 1] -= 1;
}
sta.push(ans + '0');
}
while(sta.size() > 1 and sta.top() == '0') sta.pop();
while(!sta.empty()){
r += sta.top();
sta.pop();
}
if(f) r.insert(0,1,'-');
return r;
}
int main(){
string a,b;
cin >> a >> b;
cout << j(a,b);
return 0;
}
这里空空如也
有帮助,赞一个