ACM入门题-A+B问题
描述
计算两个非负整数 A,B 的和。不过这一次有些特殊,A,B 可能会很大。
输入描述
第一行输入一个非负整数A。
第二行输入一个非负整数B。
A,B 的长度不大于 500,500。
输出描述
输出A+B的值。不要有多余的前导零。
用例输入 1
123
1234
用例输出 1
1357
解题思路
代码
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string A,B;
char ans[505];
cin >> A >> B;
reverse(A.begin(),A.end());
reverse(B.begin(),B.end());
int len = max(A.length(),B.length());
int jw = 0;
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';
jw = ans[i]/10;
ans[i] = ans[i]%10 + '0';
}
if (ans[len] == '0') {
reverse(ans,ans+len);
ans[len] = '\0';
} else {
reverse(ans,ans+len+1);
ans[len+1] = '\0';
}
cout << ans;
return 0;
}