문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 10_10000)
출력
첫째 줄에 A+B를 출력한다.
코드
#include <iostream>
using namespace std;
int main()
{
// :: Input
string a, b;
cin >> a >> b;
// 1. Check the max string length.
int max = a.length();
if(b.length() > max) max = b.length();
// 2. Put 0 in front of the string to make the same length
while(max != a.length()) {
a.insert(0, "0");
}
while(max != b.length()) {
b.insert(0, "0");
}
// 3. Calculate numbers from the back
bool plus = false;
string result = "";
for(int index = max - 1; index >= 0; index--) {
int sum = (a[index] - '0') + (b[index] - '0');
if(plus) {
sum += 1;
plus = false;
}
if(sum >= 10) {
sum -= 10;
plus = true;
}
result.insert(0, to_string(sum));
}
if(plus) result.insert(0, "1");
// :: Print
cout << result;
return 0;
}
참고
'C++ > Baekjoon' 카테고리의 다른 글
백준 10250: ACM 호텔 (0) | 2022.12.05 |
---|---|
백준 2755: 부녀회장이 될테야 (0) | 2022.11.28 |
백준 2292: 벌집 (0) | 2022.10.20 |
백준 1712: 손익분기점 (0) | 2022.10.19 |
백준 25304: 영수증 (0) | 2022.10.18 |