#include<iostream>
#include<algorithm>
#include<string>
#include<map>
#include<set>
#include<vector>
using namespace std;
//大数相加
vector<int> Add(vector<int> &left,vector<int>&right)
{
int mlen, len, i, c = 0;
mlen = left.size() > right.size() ? left.size() : right.size();
vector<int> result(mlen);
if (left.size() > right.size())
{
len = left.size() - right.size();
for (i = 0; i < len; i++)
{
right.insert(right.begin(), 0);
}
}
else if (left.size() < right.size())
{
len = -left.size() + right.size();
for (i = 0; i < len; i++)
{
left.insert(left.begin(), 0);
}
}
int sum;
for (i = mlen - 1; i >= 0;i--)
{
sum = left[i] + right[i] + c;
result[i] = sum % 10;
c = sum / 10;
}
if (c > 0)
{
result.insert(result.begin(), c);
}
return result;
}
void exchange(string Snum,vector<int> &Vnum)
{
int remainder;
vector<char> ch(Snum.size());
for (int i = 0; i < Snum.size(); i++)
{
ch[i] = Snum[i];
Vnum.push_back(ch[i]-'0');
}
}
int main()
{
long int num;
string left,right;
cin >> left>>right;
vector<int> Ileft,Iright,result;
exchange(left,Ileft);
exchange(right, Iright);
result=Add(Ileft, Iright);
for (int i =0; i < result.size(); i++)
{
cout << result[i];
}
cout << endl;
system("pause");
return 0;
}
大数相加(字符串解法)
最新推荐文章于 2021-08-01 15:07:32 发布