문제
풀이
나는 한번 씩 계산할 수 있게 먼저 10000개의 배열을 준비하였다. 그리고 재귀함수를 통하여 자릿수의 합과 원래 수의 합을 계산한 후, 그 수가 배열 n의 인덱스의 값이 0일 경우(없을 경우) 다시 함수를 호출하여 계속 찾게 만들었다.
def isNotSelf(n, num):
# 자릿수 만들기
arr = []
temp = num
while True:
arr.append(temp % 10)
if temp < 10:
break
temp //= 10
result = sum(arr)+num
if result <= 10000 and n[result] == 0:
n[result] = 1
isNotSelf(n, result)
n = [0 for i in range(0, 10000+1)]
for i in range(len(n)):
if n[i] == 1:
continue
isNotSelf(n, i)
for i in range(len(n)):
if n[i] == 0:
print(i)
댓글
댓글 쓰기