양수 n이 있다고 가정하고 n을 고유한 양수 계승의 합으로 쓸 수 있는지 여부를 확인해야 합니다.
따라서 입력이 n =144와 같으면 출력은 4와 같이 True가 됩니다! + 5! =24 + 120 =144
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
사실 :=1
-
res :=새 목록
-
x :=2
-
사실 <=n, 수행
하는 동안-
res의 끝에 사실 삽입
-
사실 :=사실 * x
-
x :=x + 1
-
-
res -1 ~ 0 범위 크기의 i에 대해 1 감소, 수행
-
n>=res[i]이면
-
n :=n - 해상도[i]
-
-
-
n이 0과 같을 때 true를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, n): fact = 1 res = [] x = 2 while fact <= n: res.append(fact) fact = fact * x x += 1 for i in range(len(res)-1,-1,-1): if n>=res[i]: n-=res[i] return n==0 ob = Solution() print(ob.solve(144))
입력
144
출력
True