1.将数字转化为字符串进行计算
#include <bits/stdc++.h>
using namespace std;
int a1[100], a2[100], a3[100];
string s1, s2;
int main() {
getline(cin, s1);
getline(cin, s2);
int len1 = s1.size();
int len2 = s2.size();
//字符串转化为数组减"0"
for (int i = 0; i < len1; i++) {
a1[len1-i-1] = s1[i] - '0';
}
for (int i = 0; i < len2; i++) {
a2[len2 - i - 1] = s2[i] - '0';
}
int len = max(len1, len2);
//把两个数组加到第三个中
for (int i = 0; i < len; i++) {
a3[i] = a2[i] + a1[i];
}
//超过10进行进1操作
for (int i = 0; i < len; i++) {
if (a3[i] >= 10) {
a3[i + 1] += 1;
a3[i] %= 10;
}
}
//判断数组长度是否增加
if (a3[len] != 0)len++;
for (int i = len - 1; i >= 0; i--) {
cout << a3[i];
}
return 0;
}
2.高精度减法找到第一个不为0的下标