728x90
풀이
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));
}
출처 및 참고자료
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
[백준 4673] 셀프 넘버 [C]
풀이 생성자가 없으면, d(n)을 형성하지 못하므로, d(n)이 아닌 수들이 셀프 넘버라고 볼 수 있다. 소스코드 #include #define MAX 10001 int n_selfNum(int n){ int result = n; for (; n > 0; n /= 10) result..
kyr-db.tistory.com
728x90
'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 |