大数相加没什么好说的,就是代码写的稀烂……
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
freopen("1.txt", "r", stdin);
string str1 = "", str2 = "";
while(cin >> str1 && str1 != "0")
{
if(str2 == "")
{
str2 = str1;
continue;
}
int len1 = str1.size();
int len2 = str2.size();
string str;
if(len1 > len2)
{
str.resize(len1 - len2 + 1);
fill_n(str.begin(), len1 - len2 + 1, '0');
str2 = str + str2;
str1 = "0" + str1;
}
else if(len1 == len2)
{
str1 = "0" + str1;
str2 = "0" + str2;
}
else
{
str.resize(len2 - len1 + 1);
fill_n(str.begin(), len2 - len1 + 1, '0');
str1 = str + str1;
str2 = "0" + str2;
}
for(int i = str1.size() - 1; i > 0; --i)
{
str2[i] += str1[i] - '0';
if(str2[i] >= '0' + 10)
{
str2[i] -= 10;
str2[i - 1] += 1;
}
}
}
string temp;
int i;
for(i = 0; i < str2.size(); ++i)
{
if(str2[i] != '0')
break;
}
for(; i < str2.size(); ++i)
temp += str2[i];
cout << temp << endl;
}