任意两个大整数的加减算法,可自动判断正负号,代码如下:
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;
string BigInegerAdd(string s1, string s2) // s1+s2;
{
int len = s1.size()>s2.size()?s1.size()+1:s2.size()+1;
string res(len, '0');
int i = s1.size() - 1, j = s2.size() - 1, k = len - 1;
int borrow = 0;
while(i >=0 && j >= 0)
{
int sum = s1[i] - '0' + s2[j] - '0' + borrow;
if (sum >= 10)
{
borrow = 1;
sum -= 10;
res[k--] = sum + '0';
}
else {res[k--] = sum + '0'; borrow = 0;}
i--;j--;
}
while(i >= 0)
{
int sum = s1[i] - '0' + borrow;
if (sum >= 10)
{
borrow = 1;
sum -= 10;
res[k--] = sum + '0';
}
else