코드 복사/붙여넣기 하는 당신이 아름답습니다.

2231 : 분해합

풀이

각 자리수의 최대값이 9이므로

[n-9*자릿수, n] 구간만 조사해도 된다!

코드

#include <stdio.h>

int n, i, j, cnt, sum;

int main() {
	scanf("%d", &n);
	i = n;
	while (i) i /= 10, cnt++;
	for (i = n - 9 * cnt; i < n; i++) {
		sum = i;
		for (j = i; j; j /= 10) sum += j % 10;
		if (sum == n) break;
	}
	printf("%d", i != n ? i : 0);
	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-01-26 13:23

Read more posts by this author