본문 바로가기
백준 문제풀이(Baekjoon)

[Baekjoon] 2331번 : 분해합

by LIZ0904 2020. 6. 16.
반응형

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

 

2231번: 분해합

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

www.acmicpc.net

 

정답코드

#include <stdio.h>

int main() {
	int n, tmp, sum, all[10] = { 0 },count=0,min;
	scanf("%d", &n);
	
	for (int i = 1; i <= n; i++) {
		int arr[7] = { 0 };
		tmp = i;
		sum = i;
		for (int j = 0; j < 7; j++) {
			sum+= tmp % 10;
			tmp /= 10;
			if (tmp < 10) {
				sum+= tmp % 10;
				break;
			}
		}
		if (sum == n) {
			all[count++] = i;
		}
	}
	
	min = n + 1;
	for (int i = 0; i < count--; i++) {
		if (all[i] < min)	min = all[i];
	}

	if (min == n + 1)	printf("0\n");
	else printf("%d\n", min);
}
반응형

댓글