当数字用long long都无法存放时,使用高精度方法
【例题】高精度加法a+b
string a, b;
cin >> a >> b;
int i = a.size() - 1; // a的最低位下标
int j = b.size() - 1; // b的最低位下标
int c = 0; // 进位
string t;
while (i >= 0 || j >= 0) {
int x;
if (i >= 0 && j >= 0) { // a和b都有对应位
x = a[i] - '0' + b[j] - '0' + c; // 对应位相加,再加进位
} else if (i >= 0) { // 仅a有对应位
x = a[i] - '0' + c;
} else { // 仅b有对应位
x = b[j] - '0' + c;
}
t = char(x % 10 + '0') + t; // 和x的个位放到结果串t
c = x / 10; // 和x的十位放到进位c
i--;
j--;
}
if (c == 1) t='1'+t; // 最高位还有进位
cout << t; // 输出结果