#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; }
用数组进行模拟,分别用两个数组存取每一位数,进行模拟相加,进位,处理大数参与链接