파이썬 오일러 프로젝트에서 55번 재귀함수 질문이요
조회수 487회
def func(list,n):
list1 = []
for i in list:
int1 = Lychrel(i)
if symmetry(int1) == False:
list1.append(int1)
if n > 0:
return func(list1,n-1)
else:
return len(list1)
오일러 프로젝트에서 55번 문제를 풀기는 했는데 재귀함수 모양이 뭔가 어색해서 그런데 특정 함수를 50번 호출하고 결과값을 받을려고 하는데 위 함수에 n에 50 넣는 방법 말고 다른 깔끔하게 함수를 작성하는 방법이 있을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
from functools import lru_cache # @lru_cache def lycrhrel(x: str, n: int) -> int: rev_sum = int(x) + int(x[::-1]) n += 1 x = str(rev_sum) print(f" {x} {n} >", end="") if x == x[::-1]: print(f" !! {x} {n} !! |") return n if n > 50: print(" !!!! ") return 51 return lycrhrel(x, n) for n in range(1, 1000, 137): k = lycrhrel(str(n), 0) # print() print(n, k) print("----")
2 1 > !! 2 1 !! | 1 1 ---- 969 1 > !! 969 1 !! | 138 1 ---- 847 1 > 1595 2 > 7546 3 > 14003 4 > 44044 5 > !! 44044 5 !! | 275 5 ---- 626 1 > !! 626 1 !! | 412 1 ---- 1494 1 > 6435 2 > 11781 3 > 30492 4 > 59895 5 > !! 59895 5 !! | 549 5 ---- 1372 1 > 4103 2 > 7117 3 > !! 7117 3 !! | 686 3 ---- 1151 1 > 2662 2 > !! 2662 2 !! | 823 2 ---- 1029 1 > 10230 2 > 13431 3 > !! 13431 3 !! | 960 3 ----
댓글 입력