티스토리 뷰

Algorithm/BOJ

백준 10757번 C++

poopooreum 2023. 9. 5. 16:38
반응형
백준 10757번 큰 수 A+B

https://www.acmicpc.net/problem/10757

10757번: 큰 수 A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net


정답 코드

#include <stdio.h>

char A[10000 + 2];
char B[10000 + 2];
int ans[10000 + 10];


void Reverse(char *str) {
    int i, len;
    char tmp;
    
   
    for (i = 0; ; i++) {
        if (str[i] == '\0') {
            len = i;
            break;
        }
    }
    for (i = 0; i < len/2; i++) {
        tmp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = tmp;
    }
}
int main(void)
{
    scanf(" %s %s", A, B);
    
Reverse(A);      Reverse(B);
    
    int i, sum = 0, flag = 0; 
    for (i = 0; !(A[i]=='\0' && B[i] == '\0') ; i++) {
        
        if (A[i] == '\0') A[i] = '0'; 
        if (B[i] == '\0') B[i] = '0';

        sum = A[i] - 48 + B[i] - 48 + flag; 
        if (sum >= 10) {
            ans[i] = sum - 10;
            flag = 1; 
        }
        else {
            ans[i] = sum;
            flag = 0;
        }
    }
    
    int end;
    
    if (flag) {
        ans[i] = flag;
        end = i + 1;
    }
    else end = i;
    
    for (i = end-1; i >= 0; i--) {
        printf("%d", ans[i]);
    }

    return 0;
}

문제 풀이

정수형으로는 오버플로우가 나기 때문에 문자들의 덧셈으로 방식을 바꾸어서 풀었습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 10798번 C++  (0) 2023.09.05
백준 10773번 C++  (0) 2023.09.05
백준 10718번 C++  (0) 2023.09.05
백준 10699번 C++  (0) 2023.09.04
백준 10430번 C++  (0) 2023.09.04
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함