高精度加法

#include <stdio.h>
#include <string.h>
char sa[1000], sb[1000];
int a[1000] = {0}, b[1000] = {0}, c[1000] = {0}, la, lb, lc;
int main() {
    scanf("%s %s", sa, sb);
    la = strlen(sa);
    lb = strlen(sb);
    int i;
    for (i = 0; i < la; i++) {
        a[la - i - 1] = sa[i] - '0';
    }
    for (i = 0; i < lb; i++) {
        b[lb - i - 1] = sb[i] - '0';
    }
    lc = la > lb ? la : lb;
    for (i = 0; i < lc; i++) {
        c[i] = a[i] + b[i] + c[i];
        if (c[i] >= 10) {
            c[i + 1] = 1;
            c[i] -= 10;
        }
    }
    if (c[lc] > 0) {
        lc++;
    }
    for (i = lc - 1; i >= 0; i--) {
        printf("%d", c[i]);
    }
    printf("\n");
    return 0;
}

你可能感兴趣的:(高精度加法)