💻STUDY/BOJ
[BOJ] 1357. 뒤집힌 덧셈 (C)
- 코딩 초보
1357. 뒤집힌 덧셈
어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다.
두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시오
첫째 줄에 수 X와 Y가 주어진다. X와 Y는 1,000보다 작거나 같은 자연수이다.
첫째 줄에 문제의 정답을 출력한다.
#include <stdio.h>
int rev(int n) {
if (n < 10) return n;
else if (n < 100) {
n = (n % 10) * 10 + n / 10;
return n;
}
else if (n < 1000) {
n = ((n % 100) % 10) * 100 + ((n % 100) / 10) * 10 + n / 100;
return n;
}
else if (n >= 1000) {
n = n / 1000 + ((n % 1000) / 100) * 10 + (((n % 1000) % 100) / 10) * 100 + (((n % 1000) % 100) % 10) * 1000;
return n;
}
}
main() {
int x, y;
scanf("%d %d", &x, &y);
printf("%d", rev(rev(x)+rev(y)));
}
int rev(int n) 함수를 만들어서 처리했다.
입력은 무조건 1000이하의 정수이지만 rev(rev(x)+rev(y))를 할때 1000보다 큰 정수가 int rev()의 매개변수 값으로 들어올 수 있음을 주의한다.
'💻STUDY > BOJ' 카테고리의 다른 글
[BOJ] 11729. 하노이 탑 이동 순서 (Python) (0) | 2022.03.14 |
---|---|
[BOJ] 2161. 카드1 (C) (0) | 2022.03.13 |
[BOJ] 5585. 거스름돈 (C) (0) | 2022.03.10 |
[BOJ] 14647. 준오는 조류 혐오야! (C) (0) | 2022.03.09 |
[BOJ] 9093. 단어 뒤집기 (C) (0) | 2022.03.08 |
댓글