#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
class BigInt
{
public:
string s;
friend istream& operator>>(istream& in, BigInt& item);
friend ostream& operator<<(ostream& out, BigInt& item);
BigInt operator+(const BigInt& temp)const;
};
istream& operator>>(istream& in, BigInt& item)
{
in >> item.s;
return in;
}
ostream& operator<<(ostream& out, BigInt& item)
{
out << item.s;
return out;
}
BigInt BigInt::operator+(const BigInt& x)const
{
string s1 = s;
string s2 = x.s;
BigInt ans;
string result;
if (s1.size()>s2.size())
swap(s1, s2);
int temp = 0;
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
for (int i = 0; i<s1.size(); i++)
{
int a = s1[i] - '0' + s2[i] - '0' + temp;
result += a % 10 + '0';
temp = a / 10;
}
for (int i = s1.size(); i<s2.size(); i++)
{
if (temp)
{
int a = s2[i] - '0' + temp;
result += a % 10 + '0';
temp = a / 10;
}
else
result += s2[i];
}
if (temp)
result += temp + '0';
reverse(result.begin(), result.end());
ans.s = result;
return ans;
}
int main()
{
BigInt a;
BigInt ans;
int n;
cin >> n;
while (n--)
{
ans.s = "";
string s;
while (cin >> s && s.size() == 0)
cin >> s;
while (s != "0")
{
a.s = s;
ans = ans + a;
while (cin >> s && s.size() == 0)
cin >> s;
}
cout << ans<<endl;
if (n)
cout << endl;
}
return 0;
}
Zoj1292
最新推荐文章于 2019-09-24 10:57:19 发布