Pagini recente » Cod sursa (job #1444416) | Cod sursa (job #1481824) | Cod sursa (job #1433245) | Cod sursa (job #2938774) | Cod sursa (job #2861237)
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#define ll long long
using namespace std;
ifstream cin("adunare.in");
ofstream cout("adunare.out");
string A, B;
string sum(string A, string B)
{
string summa;
summa.resize(max(A.size(), B.size()));
ll n = A.size(), m = B.size();
ll k = max(m, n), rest = 0;
if (n > m)
{
for (ll i = 0; i < n; ++i) summa[i] = A[i] - '0';
}
else
{
for (ll i = 0; i < m; ++i) summa[i] = B[i] - '0';
}
for (ll i = 1; i <= min(n, m); i++)
{
ll act = (A[n - i] - '0') + (B[m - i] - '0') + rest;
if (act > 9)
{
rest = act / 10;
act = act % 10;
}
else rest = 0;
summa[k - i] = act;
}
if (rest)
{
for (ll i = min(n, m) + 1; i <= max(n, m); ++i)
{
ll act = summa[k - i] + rest;
if (act > 9)
{
rest = act / 10;
act = act % 10;
}
else {
rest = 0;
summa[k - i] = act;
break;
}
summa[k - i] = act;
}
if (rest) summa.insert(summa.begin(), rest);
}
for (ll i = 0; i < summa.size(); ++i)
{
summa[i] = summa[i] + '0';
}
return summa;
}
int main()
{
cin >> A >> B;
cout << sum(A, B);
}