提交时间:2023-10-06 10:51:52

运行 ID: 105340

#include <bits/stdc++.h> using namespace std; const int MAXN = 10000+4; char s1[MAXN] = {}; char s2[MAXN] = {}; char tmp[MAXN] = {}; int a[MAXN] = {}; int b[MAXN] = {}; int c[MAXN] = {}; int main() { scanf("%s",s1); scanf("%s",s2); int lena = strlen(s1); int lenb = strlen(s2); if ((lena<lenb) || (lena==lenb && strcmp(s1,s2)<0)) { printf("-"); strcpy(tmp, s1); strcpy(s1, s2); strcpy(s2, tmp); lena = strlen(s1); lenb = strlen(s2); } for (int i=0; i<lena; i++) a[i] = s1[lena-i-1] - '0'; for (int i=0; i<lenb; i++) b[i] = s2[lenb-i-1] - '0'; for (int i=0; i<lena; i++) { if (a[i]<b[i]) { a[i+1]--; a[i] += 10; } c[i] = a[i] - b[i]; } for (int i=lena-1; i>=0; i--) { if (0==c[i] && lena>1) lena--; else break; } for (int i=lena-1; i>=0; i--) printf("%d", c[i]); return 0; }