본문 바로가기
PS 문제 풀이/SWEA

[SWEA] 3260 두 수의 덧셈

by 까망 하르방 2021. 2. 24.
반응형

출처: SWEA

 Input 

2

1 2

100000000000000000000000001 9

 

 Output 

#1 3

#2 100000000000000000000000010

 

자릿수가 작지 않기 때문에 문자열 배열을 이용해서 처리


#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main(){
    int testCase; cin >> testCase;
 
    for (int tc = 1; tc <= testCase; ++tc) {
        string A, B, result;
        cin >> A >> B;
 
        // 더 작은 숫자 자릿수 채워주기
        int n = A.size(), m = B.size(), len = max(n, m);
        if (n > m) for (int i = 0; i < n - m; i++) B = "0" + B;
        else for (int i = 0; i < m - n; i++) A = "0" + A;
 
        int w = 0, sum;
        for (int i = len - 1; i >= 0; i--) {
            sum = (A[i] - '0') + (B[i] - '0') + w;
            if (sum >= 10) w = 1, result.push_back(sum - 10 + '0');
            else w = 0, result.push_back(sum + '0');
        }
 
        if (w) result.push_back('1');
        reverse(result.begin(), result.end());
 
 
        cout << "#" << tc << " ";
        cout << result;
        cout << '\n';
    }
}

 

반응형

'PS 문제 풀이 > SWEA' 카테고리의 다른 글

[SWEA] 4007 간담회 참석  (0) 2021.02.25
[SWEA] 4066 All Pair Shortest Path  (0) 2021.02.25
[SWEA] 9780 외계인 침공  (0) 2021.02.24
[SWEA] 3408 세가지 합 구하기  (0) 2021.02.24
[SWEA] 3456 직사각형 길이 찾기  (0) 2021.02.24

댓글