首页 > 代码库 > CSUOJ_1002

CSUOJ_1002

/*
 *  Title : A+B(III)
 *  Data : 2016/11/09
 *  Author : Andrew
 */

#include <iostream>
#include <cstring>

int main() {
    std::string str1, str2;
    while (std::cin >> str1 >> str2) {
        int a[100], b[100], len;
        memset(a, 0, sizeof(a));
        memset(b, 0, sizeof(b));
        if (str1 == "0" && str2 == "0") {
            break;
        }
        a[0] = str1.length();
        b[0] = str2.length();
        for (int i = 1; i <= a[0]; ++i)
            a[i] = str1[a[0] - i] - 0;
        for (int j = 1; j <= b[0]; ++j)
            b[j] = str2[b[0] - j] - 0;
        len = (a[0] > b[0] ? a[0] : b[0]);
        for (int i = 1; i <= len; i++) {
            a[i] += b[i];
            a[i + 1] += a[i] / 10;
            a[i] %= 10;
        }
        len++;
        while ((a[len] == 0) && (len > 1))
            len--;
        for (int i = len; i >= 1; i--)
            std::cout << a[i];
        std::cout << std::endl;
    }
    return 0;
}

 

CSUOJ_1002