A+B Problem(高精)题目描述高精度加法,相当于a+b problem,不用考虑负数.
输入输出格式输入格式
分两行输入。
a
,
b
≤
1
0
500
a,b \leq 10^{500}
a,b≤10500
输出格式
输出只有一行,代表
a
+
b
a+b
a+b的值
输入输出样例输入样例 #1
1
1
输出样例 #1
2
输入样例 #2
1001
9099
输出样例 #2
10100
#include
#include
#include
using namespace std;
int main()
{
string a, b;
int c[500];
cin >> a >> b;
int i, j, k = 0, r = 0;//r表示进位
int la = a.size(), lb = b.size();//a,b字符串长度
for (i = la - 1, j = lb - 1;i >= 0 && j >= 0;i–, j–)
{
int p = (a[i] - ‘0’) + (b[j] - ‘0’) + r;
r = p / 10;
c[k++] = p % 10;
}
while (i >= 0)
{
int p = (a[i] - ‘0’ )+ r;
r = p / 10;
c[k++] = p % 10;
i–;
}
while (j >= 0)
{
int p = (b[j] - ‘0’ + r);
r = p / 10;
c[k++] = p % 10;
j–;
}
if ®//判断最高位是否有进位
{
c[k++] = r;
}
for (i = k - 1;i >= 0;i–)
{
cout << c[i];
}
cout << ‘\n’;
return 0;
}