문제

두 정수 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
블로그 이미지

RIsN

,