高精度加法
#include <bits/stdc++.h>
#define MAX 1000
using namespace std;
int main() {
char s1[MAX], s2[MAX];
cin >> s1 >> s2;
int len1 = strlen(s1), len2 = strlen(s2), i, tmp;
int data1[MAX], data2[MAX], res[MAX];
memset(data1, 0, sizeof(data1));
memset(data2, 0, sizeof(data2));
memset(res, 0, sizeof(res));
for (i = 0; i < len1; i++)
data1[i] = s1[len1 - 1 - i] - '0';
for (i = 0; i < len2; i++)
data2[i] = s2[len2 - 1 - i] - '0';
int len3 = max(len1, len2) + 1;
for (i = 0; i < len3 - 1; i++) {
tmp = res[i] + data1[i] + data2[i];
res[i + 1] += tmp / 10;
res[i] = tmp % 10;
}
for (i = len3; res[i] == 0; i--);
for (; i >= 0; i--)
cout << res[i];
}

京公网安备 11010502036488号