题目链接: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;
}