셀프 넘버는 인도수학자가 이름을 붙였다.
d(n) 을 n과 n의 각 자리수를 더하는 함수라 하자.
예) d(75) = 75+7+5=87
양의 정수 n이 주어졌을 때, n, d(n), d(dn)),..
10000 이하의 셀프 넘버를 한 줄에 하나씩 출력하세요.
입력/출력
--입력--
없음
--출력--
1
3
5
7
9
20
31
42
53
64
|
| <-- a lot more numbers
|
9903
9914
9925
9927
9938
9949
9960
9971
9982
9993
문제풀이+해설
셀프 넘버를 직접 계산하는 공식에 대한 설명이 없다.
그러므로 문제의 의도에 따라 10000 까지 생성자가 있는 수를 표시해 두고, 표시 되지 않은 수를 셀프넘버로 출력하는 방법을 사용하면 된다.
--
배열[10001] # 배열 인덱스값을 정수로 간주해서, 생성자가 있는 수를 인덱스로 1값을 넣어준다.
for 1부터 10000까지:
배열[생성자생성함수 리턴값] = 1
배열에서 1이 아닌 값은 셀프함수이므로 루프를 돌려 출력
--