高精度
高精度减法
#include<iostream> using namespace std; const int maxn = 10500; int A[maxn], B[maxn], ans[maxn]; string a, b; int num; void pd() { if(a.size() < b.size() || (a.size() == b.size() && a < b)) { cout << "-"; swap(a, b); } } int main() { cin >> a >> b; pd(); for(int i = 0; i < a.size(); i ++) A[a.size() - i - 1] = (a[i] - '0'); for(int i = 0; i < b.size(); i ++) B[b.size() - i - 1] = (b[i] - '0'); for(int i = 0; i < a.size(); i ++) { if(A[i] < B[i]) { ans[i] = A[i] + 10 - B[i]; A[i+1] --; } else ans[i] = A[i] - B[i]; } num = a.size()-1; while(!ans[num]) num--; if(num == 0 && ans[num] == 0) cout << "0"; else { for(int i = num; i >= 0; i --) cout << ans[i]; } if(a == b) cout << "0"; //注意这里 return 0; }