🐣 알고리즘 삐약/💻 백준 삐약

24 삐약 : 백준 2231 [브루트 포스 | C++]

우주수첩 2022. 6. 28. 16:04
728x90

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

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

 

#include <iostream>

using namespace std;


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

	for (int i = 1; i < n; i++) {

		int sum = i;
		int temp = i;

		while (temp) {
			sum += temp % 10;
			temp /= 10;
		}
		if (sum == n) {
			cout << i << endl;
			return 0;	
		}
	}

	cout << 0 << endl; 
}

 

딱히 뭐 설명할게 없긴 한데

우선적으로 자리수 합과 탐색 수를 더해서 생성자를 만들고

해당 생성자가 입력한 값 n에 대하여 생성자의 조건을 만족하는지에 대한 여부를 판단한 후

오름차순으로 탐색했기 때문에 가장 먼저 발견하는 수가 

문제에서 요구하는 수가 된다.

 

땨땨땨땨땨땨땨땨땨

728x90