[Baekjoon 백준] 4673번: 셀프 넘버
- 알고리즘
- 2017. 10. 16. 21:46
4673번 : 셀프 넘버 |
BAEKJOON ONLINE JUDGE (백준 문제풀이 채점 사이트)
문제링크
https://www.acmicpc.net/problem/4673
생성자가 없는 숫자가 셀프 넘버이다.
10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
1부터 시작해서 10000까지 d(n)을 구하면서 해당되는 숫자가 카운트 되지 않으면 출력한다.
예를 들어 1은 첫수 이므로 셀프 넘버가 되며 1 + 1 은 2가 되기 때문에 2는 셀프 넘버가 되지 않는다.
2 + 2 = 4, 3 + 3 = 6, 4 + 4 = 8 ..... 10 + 1 = 11, 11 + 1 + 1 = 13....
계산하면서 나오지 않은 수를 출력하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
#include <stdio.h>
#define MAX 10000
int main(void)
{
int arr[MAX + 5] = { 0, };
int n, dn;
for (int i = 1; i < MAX; i++)
{
n = i;
dn = n;
while (n != 0)
{
dn += (n % 10);
n /= 10;
}
if (dn <= MAX)
{
arr[dn]++;
}
}
for (int i = 1; i <= MAX; i++)
{
if (arr[i] == 0)
{
printf("%d\n", i);
}
}
} |
cs |
'알고리즘' 카테고리의 다른 글
[Baekjoon 백준] 1008번 : A/B (0) | 2017.10.16 |
---|---|
[Baekjoon 백준] 1065번 : 한수 (0) | 2017.10.16 |
프로그래밍 채점 사이트 (0) | 2017.10.14 |
C언어의 scanf, C++의 cin 성능 비교 (0) | 2017.09.29 |
[TIP] 소스 코드 시간 측정 코드 (0) | 2017.09.20 |
이 글을 공유하기