백준 문제풀이/실버3
백준 15353번 - 큰 수 A+B(2)
void_melody
2022. 8. 25. 02:36
https://www.acmicpc.net/problem/15353
15353번: 큰 수 A+B (2)
C++17, C11, C99, C++98, C++11, C++14, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang)
www.acmicpc.net
초등학교 산수시간에 배운 매우 고전적인 방법을 사용해야 한다.
문자열로 받아서 산수를 해준다.
계산을 편하게 하기 위해서 역순을 해준다음에 길이가 짧은 쪽에 0을 그냥 붙여주고 시작했다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
std::cin.tie(NULL);
std::cout.tie(NULL);
std::ios::sync_with_stdio(false);
int d = 0;
string result = "";
string a, b;
cin >> a >> b;
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
while (a.length() < b.length())
a += '0';
while (a.length() > b.length())
b += '0';
for(int i = 0; i < a.length(); i++)
{
int num = ((a[i] - '0') + (b[i] - '0') + d) % 10;
result += to_string(num);
d = ((a[i] - '0') + (b[i] - '0') + d) / 10;
}
if (d > 0)
result += to_string(d);
reverse(result.begin(), result.end());
cout << result;
return 0;
}