문제링크
https://www.acmicpc.net/problem/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보다 작거나 같은 자연수이다.
출력
첫째 줄에 문제의 정답을 출력한다.
해석
입력받은 수를 뒤집어주는 함수를 작성해주면 쉽게 해결할 수 있다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <iostream>
using namespace std;
int Rev(int n) {
int res = 0;
while (n) {
res = res * 10 + n % 10;
n = n / 10;
}
return res;
}
int main() {
int x, y;
cin >> x >> y;
cout << Rev(Rev(x) + Rev(y)) << endl;
}
|
cs |
Memo
짧고 간결한 풀이를 하고 싶어서 조금 고민을 했던 문제다.
while문을 만들어내려고 좀 고생했다..ㅎ