#include <bits/stdc++.h>
using namespace std;
const int maxn = 200 + 10;
typedef long long LL;
string subInfo(char *s1, char *s2) {
int a[maxn], b[maxn];
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
int len1 = strlen(s1), len2 = strlen(s2);
int maxLen = max(len1, len2);
for (int i = 0; i < len1; i++) a[i] = s1[len1 - i - 1] - '0';
for (int i = 0; i < len2; i++) b[i] = s2[len2 - i - 1] - '0';
for (int i = 0; i < maxLen; i++) {
if (a[i] - b[i] < 0) {
a[i] = a[i] + 10 - b[i];
a[i + 1] -= 1;
}
else a[i] -= b[i];
}
string str = "";
int i;
for (i = maxLen - 1; i >= 0; i--)if (a[i] != 0)break;
for (; i >= 0; i--)str += a[i] + '0';
return str;
}
string bigIntegerSub(char *s1, char *s2) {
if (s1 == s2)
return "0"; //相等
int len1 = strlen(s1), len2 = strlen(s2);
if (len1 > len2)
return subInfo(s1, s2);
else if (len1 < len2)
return "-" + subInfo(s2, s1); //负数
else {
C++大整数的减法
最新推荐文章于 2025-02-09 19:37:35 发布
