#include <stdio.h>
#include <string.h>
int sort(char a[], int l, int k);
int sort(char a[], int l, int k) {
return (a[l - k] - '0');
}
int main() {
int p, q, m, n, i;
char b1[100010] = {0};
char b2[100010] = {0};
int c1[100010] = {0};
int c2[100010] = {0};
int c3[100010] = {0};
scanf("%s", &b1);
scanf("%s", &b2);
p = strlen(b1);
q = strlen(b2);
for (i = 1; i <= p; i++) {
c1[i] = sort(b1, p, i);
}
for (i = 1; i <= q; i++) {
c2[i] = sort(b2, q, i);
}
int t = (p > q ? p : q) + 1;
for (i = 0; i < t; i++) {
c3[i] += c1[i] + c2[i];
c3[i + 1] += c3[i] / 10;
c3[i] = c3[i] % 10;
}
if (c3[t] == 0 && t > 0) {
t--;
}
for (i = t; i > 0; i--) {
printf("%d", c3[i]);
}
return 0;
}
用数组进行模拟,分别用两个数组存取每一位数,进行模拟相加,进位,处理大数参与链接

京公网安备 11010502036488号