1.思想:
实现两个正整数相加,使用字符串存储数据。
2.实现:
代码很简洁,如下:
#include<iostream>
using namespace std;
#include<algorithm>
int main()
{
// 接收两个加数的输入
string a;
string b;
string result = "";
cin >> a >> b;
int flag = 0; //进位标志
int temp = 0; //各位相加的个位部分
int maxWei = a.length() > b.length() ? a.length() : b.length();
// 将 a,b在前面补零对齐
while (a.length() < b.length())
{
a = '0' + a;
}
while (b.length() < a.length())
{
b = '0' + b;
}
for (int i = maxWei - 1; i >= 0; i--)
{
temp = ((a[i] - '0') + (b[i] - '0') + flag) % 10; // 转为整型
flag = ((a[i] - '0') + (b[i] - '0') + flag) / 10;
result += (temp + '0'); // 转为字符型
}
// 处理最后一次进位
if (flag > 0)
result += (flag + '0');
// 翻转 result 字符串
reverse(result.begin(), result.end());
cout << result << endl;
system("pause");
return 0;
}
3.输出: