练习7A+B

计算两个非负整数 的和。
不过这一次有些特殊, 可能会很大。

输入格式
第一行输入一个非负整数 。 第二行输入一个非负整数 。 的长度不大于 。

输出格式
输出 的值。
不要有多余的前导零。

样例输入

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;
}

猜你喜欢

转载自blog.csdn.net/qq_43612495/article/details/86409135