Description
求A+B
Input
多组测试样例。两个正整数X,Y(0≤X,Y≤10^100)
Output
输出结果
Sample Input
1 1
12345 54321
Sample Output
2
66666
#include<stdio.h>
#include<iostream>
#include<map>
#include<algorithm>
#include<cstring>
#include<string.h>
#include<string>
#include<math.h>
#include<vector>
#include<map>
using namespace std;
//typedef long long ll;
#define MAXN 100005*8
#define INF 0x3f3f3f3f//将近int类型最大数的一半,而且乘2不会爆int
#define MOD 1000000007
char a[MAXN], b[MAXN];
int s[MAXN];
int len;
void sum(char *a, char *b)
{
memset(s, 0, sizeof(s));
int la = strlen(a);
int lb = strlen(b);
reverse(a, a + la);
reverse(b, b + lb);
for (int i = 0; i < la; ++i)
a[i] = a[i] - '0';
for (int i = 0; i < lb; ++i)
b[i] = b[i] - '0';
len = max(la, lb);
int ans, tem = 0;
for (int i = 0; i <= len; ++i)
{
ans = a[i] + b[i] + tem;
s[i] = ans % 10;
tem = ans / 10;
//cout << ans << ' ' << tem << '\n';
}
}
int main()
{
while (scanf("%s%s", a, b)!=EOF) {
memset(s, 0, sizeof(s));
sum(a, b);
if (s[len]!=0) cout << s[len];
for (int i = len-1; i >= 0; --i) {
cout << s[i];
}
cout << '\n';
}
//system("pause");
return 0;
}