#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int
main ()
{
string a, b;
int c;
cin >> a >> b;
if (a == "0" && b != "0")
cout << b;
if (a == "0" && b != "0")
goto out;
if (b == "0" && a != "0")
cout << a;
if (b == "0" && a != "0")
goto out;
reverse (a.begin (), a.end ());
reverse (b.begin (), b.end ());
a = a + '0';
b = b + '0';
if (a.length () >= b.length ())
{
for (int i = 0; i < b.length (); i++)
{
c = (a[i] - '0') + (b[i] - '0');
if (c >= 10)
{
a[i] = c % 10 + '0';
for (int j = i; j <= a.length (); j++)
{
if (a[j + 1] == '9')
a[j + 1] = '0';
else
{
a[j + 1] = ((a[j + 1] - '0') + 1) + '0';
break;
}
}
}
else
{
a[i] = c + '0';
}
}
reverse (a.begin (), a.end ());
if (a[0] == '0')
a.erase (a.begin ());
cout << a;
}
else
{
for (int i = 0; i < a.length (); i++)
{
c = (a[i] - '0') + (b[i] - '0');
if (c >= 10)
{
b[i] = c % 10 + '0';
for (int j = i; j <= b.length (); j++)
{
if (b[j + 1] == '9')
b[j + 1] = '0';
else
{
b[j + 1] = ((b[j + 1] - '0') + 1) + '0';
break;
}
}
}
else
{
b[i] = c + '0';
}
}
reverse (b.begin (), b.end ());
if (b[0] == '0')
b.erase (b.begin ());
cout << b;
}
out:
return 0;
}
파이썬을 쓰면 10초만에 해결인데 브5 문제에 이렇게 끙끙 싸매는게 맞나… 싶으면서도 오기가 생겨서 결국 혼자서 구현해본 코드입니다 아직 C 기능들도 다 아는게 아니라서 고투 빼고 스왑 넣고 하라는 식의 조언도 받았습니다 문제는 다른 큰 수 문제들을 어떻게 제 힘으로 해결할지….