#include<bits/stdc++.h>
using namespace std;
string A, B;
int a[10010], b[10010], c[10010], n1, n2, flag;
int compare() {
for (int i = n1 - 1; i >= 0; i--) {
if (a[i] > b[i])return 1;
if (a[i] < b[i])return 0;
}
return 2;
}
int main() {
cin >> A >> B;
n1 = A.length();
n2 = B.length();
for (int i = 0; i < n1; i++)a[n1 - 1 - i] = A[i] - 48;
for (int i = 0; i < n2; i++)b[n2 - 1 - i] = B[i] - 48;
if (n1 > n2 || (compare() == 1 && n1 == n2)) {
for (int i = 0; i < n1; i++) {
c[i] += a[i] - b[i];
if (c[i] < 0) {
c[i + 1]--;
c[i] += 10;
}
}
for (int i = n1 - 1; i >= 0; i--) {
if (c[i] != 0 || (c[i] == 0 && flag == 1)) {
cout << c[i];
flag = 1;
}
}
}
if (n1 < n2 || (compare() == 0 && n1 == n2)) {
cout << "-";
for (int i = 0; i < n2; i++) {
c[i] += b[i] - a[i];
if (c[i] < 0) {
c[i + 1]--;
c[i] += 10;
}
}
for (int i = n2 - 1; i >= 0; i--) {
if (c[i] != 0 || (c[i] == 0 && flag == 1)) {
cout << c[i];
flag = 1;
}
}
}
if (compare() == 2 && n1 == n2)cout << 0;
return 0;
}
1197.高精度减法
最新推荐文章于 2024-07-19 15:39:46 发布
本文介绍了一个C++程序,用于比较两个字符串A和B对应的ASCII整数值,根据大小关系进行进位操作并输出结果。
摘要由CSDN通过智能技术生成