보관함

각 자리수의 역과 합(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