Algorithm/Brute Force

Baekjoon 2231 분해합

GirlFriend_Yerin 2019. 8. 21. 13:50

Link https://www.acmicpc.net/problem/2231

소스결과 1988 KB / 8 ms

출처 Baekjoon

언어 C++ 17

분류 Brute Force

 

설명

특정 수 N에 대해서 생성자를 구하여라.

 

알고리즘

1. 1 ~ N 까지 각 숫자에 대해서 분해합을 구한다.

2. 분해합이 입력값과 일치하면 출력한다. 만약 해당 결과가 없다면 0을 출력한다. 

 

소스코드

#include <iostream>

using namespace std;

int solve(int k)
{
	int res = k;
	for (; k; k /= 10)
		res += k % 10;
	return res;
}

int main()
{
	int n; cin >> n;

	int res = 0;

	for (int i = 1; i <= n; i++) {
		int divSum = solve(i);
		if (divSum == n) {
			res = i;
			break;
		}
	}

	cout << res;

	return 0;
}