최대 1 분 소요

Question

Question


Solution

  • 주어진 숫자 N을 for문으로 1부터 탐색을 한다. (최솟값 찾기)
  • 탐색 식은 임의의 숫자 M이라고 할때, M + M의 각 자리수 이다
  • 이를 더한 값이 N과 같으면 M을 출력, 없으면 0을 출력한다.

Cord

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	int answer = 0;

	// 입력
	int num;
	cin >> num;

	// 분해 합 찾기
	for (int idx = 1; idx <= num; idx++)
	{
		int temp = idx;

		int sumUnits = 0;

		// temp의 각 자리수 도출
		while (temp != 0)
		{
			sumUnits += temp % 10;
			temp /= 10;
		}
		
		// temp와 temp의 자리수 합
		int sum = idx + sumUnits;

		// 합이 같은경우
		if (sum == num)
		{
			answer = idx;
			break;
		}
	}

	// 출력
	cout << answer;

	return 0;
}

Result

2798