-
[BOJ]백준 15353번: 큰 수 A + B (2)Problem Solving/BOJ(백준) 2019. 7. 10. 15:19
https://www.acmicpc.net/problem/15353
단순히 a+b를 계산하면 되는 문제이지만, a와 b의 범위가 정수형 자료형이 저장할 수 있는 범위를 한~참 넘기 때문에 일반적인 더하기 기호를 쓰면 안된다.
대신에 아주 고전적인 더하기 방법을 사용해야 함 ㅎㅎ
각각의 숫자를 문자열에 저장하고, 맨 마지막 숫자부터 더하기 연산을 해준다
각 자리수의 덧셈 결과가 10 이상이면 다음 자리수에 +해주기
두 숫자의 자리수가 각각 다른 경우까지 고려해줘서 조건을 추가해줘야 한다
#include <cstdio> #include <string.h> int main() { int n1, n2, idx=0, p=0, s1, s2, ans[10001]; char c1[10001], c2[10001]; scanf("%s%s", c1, c2); s1 = strlen(c1); s2 = strlen(c2); while (s1||s2||p) { if (s1) n1 = c1[(s1--) - 1]-'0'; if (s2) n2 = c2[(s2--) - 1]-'0'; ans[idx++] = (n1 + n2 + p) % 10; p = n1 + n2 + p > 9 ? 1 : 0; n1 = n2 = 0; } for (int i = idx-1; i >= 0; i--)printf("%d", ans[i]); return 0; }
'Problem Solving > BOJ(백준)' 카테고리의 다른 글
[BOJ]백준 17780/17837번: 새로운 게임, 새로운 게임2 (0) 2019.11.05 [BOJ]백준 9663번: N-Queen (2) 2019.08.14 [BOJ]백준 11403번: 경로 찾기 (322) 2019.07.05 [BOJ]백준 16198번: 에너지 모으기 (418) 2019.06.24 [BOJ]백준 17254번: 키보드 이벤트 (451) 2019.06.23