알고리즘/백준

BOJ 2231 분해합 / C++

내이름은 킹햄찌 2022. 5. 24. 00:03

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

 

2231번: 분해합

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

www.acmicpc.net

백준 온라인저지 2231번 분해합문제입니다.

아이디어

n의 분해합을 구하는 문제입니다. 완전탐색으로 풀이했습니다.

#include<iostream>
using namespace std;

int n;

void input() {
	cin >> n;
}

void solution() {
	int sol = 0;
	for (int i = 1; i < n; i++) {
		int sum = 0; 
		int num = i; 
		while (num != 0) { 
			//분해합 원소 만들기
			sum += num % 10; 
			num /= 10; 
		} 
		//분해합 조건
		if (sum + i == n) { 
			sol = i; 
			break; 
		} 
	}
	cout << sol;

}
int main()
{
	input();
	solution();
}