题目链接:https://www.acwing.com/problem/content/description/793/
时/空限制:1s / 64MB

题目描述

给定两个正整数,计算它们的和。

输入格式

共两行,每行包含一个整数。

输出格式

共一行,包含所求的和。

数据范围

1≤整数长度≤100000

输入样例

12
23

输出样例

35

解题思路

题意:计算两个大数的和。
思路:直接上大数模板。

Accepted Code:

/* 
 * @Author: lzyws739307453 
 * @Language: C++ 
 */
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
char sa[MAXN], sb[MAXN];
// C = A + B, A >= 0, B >= 0
vector <int> Add(vector <int> A, vector <int> B) {
    if (A.size() < B.size())
        return Add(B, A);
    vector <int> C;
    int t = 0;
    for (int i = 0; i < A.size(); i++) {
        t += A[i];
        if (i < B.size())
            t += B[i];
        C.push_back(t % 10);
        t /= 10;
    }
    if (t)
        C.push_back(t);
    return C;
}
int main() {
    vector <int> spa, spb, spc;
    scanf("%s%s", sa, sb);
    for (int i = strlen(sa) - 1; ~i; i--)
        spa.push_back(sa[i] - '0');
    for (int i = strlen(sb) - 1; ~i; i--)
        spb.push_back(sb[i] - '0');
    spc = Add(spa, spb);
    for (int i = spc.size() - 1; ~i; i--)
        printf("%d", spc[i]);
    printf("\n");
    return 0;
}