문제 주소 : https://www.acmicpc.net/problem/10757
정답 비율 : 48.601% (2021.07.26 23:22 기준)
10757번: 큰 수 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제 풀이 :
약간의 고전 문제(?)입니다.
C언어에서는 숫자로 입력 받을 수 없는 수가 주어집니다.
따라서 해당 숫자를 문자열로 입력받은 후에 직접 더하기를 구현해야 합니다.
코드는 다음과 같습니다.
C99
#include <stdio.h>
#include <string.h>
#define MAX 10001
char a[MAX];
char b[MAX];
char s[MAX + 1];
int main(void) {
scanf("%s %s", a, b);
int a_len = strlen(a), b_len = strlen(b), s_idx = -1;
for (int i = 0; i < (b_len > a_len ? b_len : a_len); i++) {
char nowA = a_len > i ? a[a_len - 1 - i] - 48 : 0;
char nowB = b_len > i ? b[b_len - 1 - i] - 48 : 0;
s[MAX - 1 - i] += (s[MAX - i] + nowA + nowB) / 10;
s[MAX - i] = (s[MAX - i] + nowA + nowB) % 10;
}
while (s[++s_idx] == 0);
for (; s_idx < MAX + 1; s_idx++) {
printf("%d", s[s_idx]);
}
return 0;
}
Python3
print(sum(map(int, input().split())))
-> 파이썬이 참 편리하다는 것을 다시금 느낄 수 있었습니다.
'Algorithm Trainning > 백준 알고리즘(BEAKJOON)' 카테고리의 다른 글
| 백준 : 6494번, Another lottery (0) | 2021.12.20 |
|---|---|
| 백준 : 4571번, Grade School Multiplication (0) | 2021.12.19 |
| 백준 : 7576번, 토마토 (0) | 2021.07.05 |
| 백준 : 2292번, 벌집 (0) | 2021.06.29 |
| 백준 : 3273번, 두 수의 합 (0) | 2021.06.28 |