高精度減法模板
阿新 • • 發佈:2018-12-08
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn = 1000; char s1[maxn], s2[maxn], s3[maxn]; int a[maxn], b[maxn]; int main() { int la, lb, m=0; cin >> s1 >> s2; la = strlen(s1); lb = strlen(s2); if(strcmp(s1, s2) == 0) { cout << 0; return 0; } if(la<lb || la==lb && strcmp(s1, s2)<0 ) { cout << "-"; strcpy(s3, s1); strcpy(s1, s2); strcpy(s2, s3); } la = strlen(s1); lb = strlen(s2); for(int i=1;i<=la;i++) a[i] = s1[la-i] - 48; for(int i=1;i<=lb;i++) b[i] = s2[lb-i] - 48; for(int i=1;i<=la;i++) { if(a[i] < b[i]) { a[i+1]--; a[i] += 10; } a[i] -= b[i]; } while(a[la] == 0 && la>1) la--; for(int i=la;i>=1;i--) cout << a[i]; cout << endl; return 0; }