숫자가 있다고 가정하면 n(n!)의 계승이 n과 같도록 n을 찾아야 합니다. 우리가 알고 있듯이 계승 n =n * (n - 1) * (n - 2) * ... * 1. 그러한 정수 n이 없으면 -1을 반환합니다.
따라서 입력이 a =120과 같으면 출력은 5가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- i :=0, 숫자 :=1
- L:=새 목록
- 나는 <, 하는 동안
- i :=num의 계승
- L 끝에 i 삽입
- 숫자 :=숫자 + 1
- 가 L에 있으면
- (L의 인덱스) +1을 반환
- 그렇지 않으면
- 반환 -1
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
import math class Solution: def solve(self, a): i,num=0,1 L=[] while i < a : i=math.factorial(num) L.append(i) num+=1 if a in L : return L.index(a)+1 else : return -1 ob = Solution() print(ob.solve(120))
입력
120
출력
5