题干:
给定两个正整数(不含前导 00),计算它们的和。
输入格式:
共两行,每行包含一个整数。
输出格式:
共一行,包含所求的和。
数据范围:
1≤整数长度≤1000001≤整数长度≤100000
输入样例:
12
23
输出样例:
35
代码:
#include <iostream>
using namespace std;
const int N = 100010;
int A[N], B[N], C[N];
int Add(int a[], int b[], int c[], int cnt) {
int t = 0;
for (int i=1; i<=cnt; i++) {
t += a[i] + b[i];
c[i] = t % 10;
t /= 10;
}
if (t) c[++cnt] = 1;
return cnt;
}
int main() {
string a, b;
cin >> a >> b;
int cnt1 = 0;
for (int i=a.size()-1; i>=0; i--)
A[++cnt1] = a[i] - '0';
int cnt2 = 0;
for (int i=b.size()-1; i>=0; i--)
B[++cnt2] = b[i] - '0';
int tot = Add(A, B, C, max(cnt1, cnt2));
for (int i=tot; i>=1; i--)
cout << C[i];
}