题目描述输入两个正整数:a,b。
求他们的和。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a, b;
int s[10000];
cin>>a;
cin>>b;
int len_a=a.length(), len_b=b.length(), len;
int k=0, max;
max = len_a>len_b ? len_a : len_b;
// 加法运算
for (int i=max-1; i>=0; i--) {
// 因为是字符串,需要转化为数字
if (len_a-1-k>=0) {
s[k] = s[k] + a[len_a-1-k] - '0';
}
if (len_b-1-k>=0) {
s[k] = s[k] + b[len_b-1-k] - '0';
}
s[k+1] = s[k]/10; // 是否有进位,进位则存入下一个位置
s[k] %= 10; // 各位数则存进当前位置
k++;
}
// 两数相加之后的位数最多酒多一位,99+99 = 198
len = max+1;
// 去掉0
while (s[len]==0 && len > 0) {
len--;
}
// 输出
for (int i=len; i>=0; i--) {
cout<<s[i];
}
}