001 #include <cstdlib>
002
003 #include <iostream>
004
005
006
007 using namespace std;
008
009
010
011 char a[1050], b[1050], s[1050], c;
012
013 int l1, l2, i, l, jie, x, f;
014
015
016
017 int main()
018
019 {
020
021 cin >> a >> b;
022
023 l1 = strlen(a);
024
025 l2 = strlen(b);
026
027 for (i = 0; i < l1 / 2; i++)
028
029 swap(a[i], a[l1 - i - 1]);
030
031 for (i = 0; i < l2 / 2; i++)
032
033 swap(b[i], b[l2 - i - 1]);
034
035 if (l1 < l2)
036
037 {
038
039 l = l2;
040
041 for (i = l1; i < l2; i++)
042
043 a[i] = '0';
044
045 a[i] = '\0';
046
047 }
048
049 else
050
051 {
052
053 l = l1;
054
055 for (i = l2; i < l1; i++)
056
057 b[i] = '0';
058
059 b[i] = '\0';
060
061 }
062
063 for (i = l - 1; i >= 0; i--)
064
065 {
066
067 if (a[i] > b[i]) {f = -1; break;}
068
069 if (a[i] < b[i]) {f = 1; break;}
070
071 }
072
073 if (f == 0) {cout << 0; return 0;}
074
075 if (f == 1)
076
077 {
078
079 cout << "-";
080
081 for (i = 0; i < l; i++)
082
083 swap(a[i], b[i]);
084
085 }
086
087 for (i = 0; i < l; i++)
088
089 {
090
091 x = a[i] - b[i] - jie;
092
093 if (x < 0)
094
095 {
096
097 jie = 1;
098
099 x = x + 10;
100
101 }
102
103 else
104
105 jie = 0;
106
107 s[i] = x + '0';
108
109 }
110
111 l = l - 1;
112
113 while (s[l] == '0')
114
115 {
116
117 s[l] = '\0';
118
119 l--;
120
121 }
122
123 l++;
124
125 for (i = 0; i < l / 2; i++)
126
127 swap(s[i], s[l - i - 1]);
128
129 cout << s << endl;
130
131 return 0;
132
133 }
高精减
002
003 #include <iostream>
004
005
006
007 using namespace std;
008
009
010
011 char a[1050], b[1050], s[1050], c;
012
013 int l1, l2, i, l, jie, x, f;
014
015
016
017 int main()
018
019 {
020
021 cin >> a >> b;
022
023 l1 = strlen(a);
024
025 l2 = strlen(b);
026
027 for (i = 0; i < l1 / 2; i++)
028
029 swap(a[i], a[l1 - i - 1]);
030
031 for (i = 0; i < l2 / 2; i++)
032
033 swap(b[i], b[l2 - i - 1]);
034
035 if (l1 < l2)
036
037 {
038
039 l = l2;
040
041 for (i = l1; i < l2; i++)
042
043 a[i] = '0';
044
045 a[i] = '\0';
046
047 }
048
049 else
050
051 {
052
053 l = l1;
054
055 for (i = l2; i < l1; i++)
056
057 b[i] = '0';
058
059 b[i] = '\0';
060
061 }
062
063 for (i = l - 1; i >= 0; i--)
064
065 {
066
067 if (a[i] > b[i]) {f = -1; break;}
068
069 if (a[i] < b[i]) {f = 1; break;}
070
071 }
072
073 if (f == 0) {cout << 0; return 0;}
074
075 if (f == 1)
076
077 {
078
079 cout << "-";
080
081 for (i = 0; i < l; i++)
082
083 swap(a[i], b[i]);
084
085 }
086
087 for (i = 0; i < l; i++)
088
089 {
090
091 x = a[i] - b[i] - jie;
092
093 if (x < 0)
094
095 {
096
097 jie = 1;
098
099 x = x + 10;
100
101 }
102
103 else
104
105 jie = 0;
106
107 s[i] = x + '0';
108
109 }
110
111 l = l - 1;
112
113 while (s[l] == '0')
114
115 {
116
117 s[l] = '\0';
118
119 l--;
120
121 }
122
123 l++;
124
125 for (i = 0; i < l / 2; i++)
126
127 swap(s[i], s[l - i - 1]);
128
129 cout << s << endl;
130
131 return 0;
132
133 }
高精减