https://www.acmicpc.net/problem/15353
초등학교 산수시간에 배운 매우 고전적인 방법을 사용해야 한다.
문자열로 받아서 산수를 해준다.
계산을 편하게 하기 위해서 역순을 해준다음에 길이가 짧은 쪽에 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;
}
'백준 문제풀이 > 실버3' 카테고리의 다른 글
백준 1002번 - 터렛 (0) | 2022.08.18 |
---|---|
백준 3273번 - 두 수의 합 (0) | 2022.08.18 |
백준 1388 - 바닥 장식 (0) | 2022.08.04 |
백준 11659번 - 구간 합 구하기 4 (0) | 2022.08.04 |
백준 1213번 - 팰린드롬 만들기 (0) | 2022.07.05 |