풀이
4673 - 셀프 넘버 문제와 비슷하다.
단, 생성자의 여부가 아닌, 가장 작은 생성자를 출력해야 한다.
- 생정자의 범위는 N - 자리수 * 9 부터 N-1이다.
- 만약 생성자를 구하지 못했다면, 0을 반환한다.
소스코드
#include <stdio.h>
int selfNum(int n){
int cnt = 0, temp = n;
for (; temp > 0; temp /= 10) ++cnt;
for (int i = n - 9*cnt; i < n; i++){
temp = i;
int result = i;
for (; temp > 0; temp /= 10) result += temp%10;
if (result == n)
return i;
}
return 0;
}
int main(){
int N;
scanf("%d", &N);
printf("%d\n", selfNum(N));
}
출처 및 참고자료
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 15829] Hashing [C] (0) | 2021.07.25 |
---|---|
[백준 2775] 부녀회장이 될테야 [C] (0) | 2021.07.25 |
[백준 11866] 요세푸스 문제 0 [C++] (0) | 2021.07.25 |
[백준 9663] N-Queen [C] (0) | 2021.07.24 |
[백준 2292] 벌집 [C] (0) | 2021.07.23 |