题目描述 Description
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述 Input Description
读入两个用空格隔开的正整数
输出描述 Output Description
输出A+B的值
样例输入 Sample Input
3 12
样例输出 Sample Output
15
数据范围及提示 Data Size & Hint
两个正整数的位数不超过500位
代码
#include <iostream>
#include <cstring>
using namespace std;
char v1[1000];
char v2[1000];
int add[1000];
void addBigInteger(){
int len1, len2;
int t1, t2, i;
len1 = strlen(v1);
len2 = strlen(v2);
if(len1 < len2){
swap(len1, len2);
swap(v1, v2);
}
for(i = 1; i <= len1; ++i){
t1 = v1[len1 - i] - '0';
if(i > len2){
t2 = 0;
}
else{
t2 = v2[len2 - i] - '0';
}
add[i - 1] += t1 + t2;
if(add[i - 1] >= 10){
add[i - 1] -= 10;
++add[i];
}
}
if(add[len1]){
++len1;
}
for(i = len1 - 1; i >= 0; --i){
cout << add[i];
}
}
int main(){
cin >> v1 >> v2;
addBigInteger();
cout << endl;
return 0;
}