计算两个非负整数 的和。
不过这一次有些特殊, 可能会很大。
输入格式
第一行输入一个非负整数 。 第二行输入一个非负整数 。 的长度不大于 。
输出格式
输出 的值。
不要有多余的前导零。
样例输入
123
1234
样例输出
1357
题解:
对应的的位置,进行相加,然后加上进位,得到结果的个位为该位置的数字,十位为新的进位,依次类推。
代码:
#include
#include
#include
using namespace std;
int main() {
string A, B;
char ans[500 + 5];
cin >> A >> B;
reverse(A.begin(), A.end());
reverse(B.begin(), B.end());
int jw = 0; // 进位
int len = max(A.length(), B.length());
for (int i = 0; i < len; i++) {
ans[i] = jw;
if (i < A.length())
ans[i] += A[i] - ‘0’;
if (i < B.length())
ans[i] += B[i] - ‘0’;
if (ans[i] >= 10)
jw = 1;
else
jw = 0;
ans[i] = ans[i] % 10 + ‘0’;
}
reverse(ans, ans + len);
ans[len] = ‘\0’;
cout << ans;
return 0;
}