Loading... ``` #include <iostream> #include <algorithm> using namespace std; bool operator< (const string& a, const string& b) { if (a.length() == b.length()) { for (int i = 0; i < a.length(); ++i) { if (a[i] > b[i]) return 0; else if (a[i] < b[i]) return 1; } return 0; } return a.length() < b.length(); } string operator-(string a, string b) { if (a < b) return "-" + (b - a); reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); int t = 0; string ans; for (int i = 0; i < a.length(); ++i) { t += a[i] - '0'; if (i < b.length()) t -= b[i] - '0'; ans.push_back((t + 10) % 10 + '0'); t = (t - 10 + 1) / 10; } while (ans.size() > 1 && ans.back() == '0') ans.pop_back(); reverse(ans.begin(), ans.end()); return ans; } string a, b; int main () { ios::sync_with_stdio(0); cin.tie(0); cin >> a >> b; cout << a - b; return 0; } ``` 最后修改:2024 年 08 月 08 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏