先来个java版
import java.math.*;
import java.util.*;
public class Main
{
static public void main(String[] args)
{
Scanner cin = new Scanner(System.in);
BigInteger a = cin.nextBigInteger();
BigInteger b = cin.nextBigInteger();
System.out.println(a.add(b));
cin.close();
}
}
再来个c++版
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 505;
char A[maxn], B[maxn], sum[maxn];
void add(char *a, char *b)
{
int a_len = strlen(a);
int b_len = strlen(b);
if(a_len > b_len)
swap(a, b), swap(a_len, b_len);
reverse(a, a + a_len);
reverse(b, b + b_len);
int len = b_len;
for(int i = a_len; i < len; i++)
a[i] = '0';
int c = 0;
for(int i = 0; i < len; i++)
{
int t = (a[i] - '0') + (b[i] - '0') + c;
c = (t >= 10);
sum[i] = t - 10 * c + '0';
}
if(c) sum[len++] = '1';
sum[len] = '\0';
reverse(sum, sum + len);
}
int main()
{
while(~scanf("%s%s", A, B))
{
add(A, B);
printf("%s\n", sum);
}
return 0;
}