Commit 2e5f664b authored by 야오지앙's avatar 야오지앙

Upload New File

parent a8118638
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define n 10
string dezero(string a)
{
long int i;
for (i = 0;i < a.length();i++)
{
if (a.at(i) > 48) break;
}
if (i == a.length()) return "0";
a.erase(0, i);
return a;
}
string add(string a, string b)
{
a = dezero(a);
b = dezero(b);
string c;
string d = "0";
long int kmin, kmax, i;
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
if (a.length() > b.length()) { kmin = b.length();kmax = a.length();c = a; }
else { kmin = a.length();kmax = b.length();c = b; }
c.insert(c.length(), d);
for (i = 0;i < kmin;i++)
{
if (a.at(i) >= 48 && a.at(i) <= 57) a.at(i) -= 48;
if (a.at(i) >= 97 && a.at(i) <= 122) a.at(i) -= 87;
if (b.at(i) >= 48 && b.at(i) <= 57) b.at(i) -= 48;
if (b.at(i) >= 97 && b.at(i) <= 122) b.at(i) -= 87;
c.at(i) = a.at(i) + b.at(i);
}
for (i = kmin;i < kmax + 1;i++)
{
if (c.at(i) >= 48 && c.at(i) <= 57) c.at(i) -= 48;
if (c.at(i) >= 97 && c.at(i) <= 122) c.at(i) -= 87;
}
for (i = 0;i < kmax;i++)
{
if (c.at(i) >= n)
{
c.at(i + 1) += c.at(i) / n;
c.at(i) = c.at(i) % n;
}
}
if (c.at(kmax) == 0)
{
c.erase(kmax, kmax + 1);
}
for (i = 0;i < c.length();i++)
{
if (c.at(i) >= 10) c.at(i) += 87;
if (c.at(i) < 10) c.at(i) += 48;
}
reverse(c.begin(), c.end());
return c;
}
int main()
{
string a, b;
while (cin >> a >> b)
{
cout << add(a, b);
}
return 0;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment