#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <stack>
#include <math.h>
#include <map>
#include <sstream>
using namespace std;
string AddLongInteger(string addend, string augend)
{
int sum = 0;
int carry = 0;
int len1 = addend.length();
int len2 = augend.length();
stringstream ss;
// 将addend作为被加数
if (len1 < len2)
{
string tmp = addend;
addend = augend;
augend = tmp;
}
// 从字符串末尾,即整数的最低位开始遍历
int i = len1 - 1;
int j = len2 - 1;
while (i >= 0)
{
int x = 0;
int y = 0;
x = addend[i] - '0';
if (j >= 0)
y = augend[j] - '0';
sum = x + y + carry;
if (sum >= 10)
{
addend[i] = sum % 10 + '0';
carry = sum / 10;
}
else
{
addend[i] = sum + '0';
carry = 0;
if (j < 0)
break;
}
i--;
j--;
}
// 开头插入进位数
if (carry)
addend.insert(addend.begin(), carry + '0');
return addend;
}
int main()
{
string x, y;
cin >> x >> y;
cout << AddLongInteger(x, y) << endl;
system("pause");
return 0;
}
大整数加法
最新推荐文章于 2016-09-08 16:59:03 发布