보관함
각 자리수의 역과 합(Number Reverse)
niamdank
2020. 2. 5. 23:36
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다.
실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다.
이번 포스팅에서는 수학2의 각 자리수의 역과 합을 풀어보겠습니다.
1009 : 각 자리수의 역과 합(Number Reverse)

이 문제에서 주의할 것은 한 가지 밖에 없는데 1의 자리에서 부터 값을 더하고 10을 곱하는 과정에서 오버플로우가 발생할 수 있다는 점 입니다. 그러므로 10을 곱하기 전 남은 자리수를 체크한 뒤 처리해야 합니다.
#include <iostream>
using namespace std;
int GetReverse(int n);
int GetSum(int n);
int main(void)
{
int n;
while (true)
{
cin >> n;
if (n == 0)
break;
cout << GetReverse(n) << ' ' << GetSum(n) << endl;
}
}
int GetReverse(int n)
{
int result{ 0 };
while (true)
{
result += n % 10;
n /= 10;
if (n > 0)
result *= 10;
else
break;
}
return result;
}
int GetSum(int n)
{
int result{ 0 };
while (n > 0)
{
result += n % 10;
n /= 10;
}
return result;
}
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=288&sca=2040
JUNGOL | 각 자리수의 역과 합(Number Reverse) > 문제은행
21억 이하의 양의 정수를 입력받는다. 잘못된 데이터는 입력되지 않는다. 하나의 결과가 나온 후에도 계속 새로운 입력을 받다가 0이 입력되면 프로그램을 종료한다. 최대 10개의 양의 정수가 입력될 수 있다.
www.jungol.co.kr