#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string AddTwoString(string a, string b)
{
reverse(a.begin(), a.end()); //把a,b翻转,以对齐低位
reverse(b.begin(), b.end());
int sizeA = a.size();
int sizeB = b.size();
string ans = "";
int plusBit = 0;
int temp;
for (int i = 0; i <= max(sizeA, sizeB); ++i)
{
if (i < sizeA && i < sizeB)
temp = a[i] - '0' + b[i] - '0' + plusBit;
else if (i >= sizeA && i < sizeB)
temp = b[i] - '0' + plusBit;
else if (i < sizeA && i >= sizeB)
temp = a[i] - '0' + plusBit;
else if (i == max(sizeA, sizeB))
{
if (plusBit == 1) //对最后一位特殊处理
ans.push_back(plusBit + '0');
reverse(ans.begin(), ans.end());
return ans;
}
if (temp >= 10)//对非最后一位的处理
{
plusBit = 1;
temp -= 10;
}
else plusBit = 0;
ans.push_back(temp + '0');
}
}
void main()
{
string a = "999", b = "1";
cout << AddTwoString(a, b);
system("pause");
}
两个用大数相加(转化为字符串再相加)
最新推荐文章于 2021-02-19 23:26:13 发布