Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

숫자를 확인하는 프로그램은 Python에서 고유한 계승 수의 합으로 작성하거나 작성하지 않을 수 있습니다.

<시간/>

양수 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