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

Python의 Austin Powers

<시간/>

0보다 큰 숫자가 있다고 가정하면 숫자가 2의 거듭제곱인지 확인해야 합니다.

따라서 입력이 1024와 같으면 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n> 1일 때 수행

    • n :=n / 2

  • n이 1과 같으면 true를 반환하고 그렇지 않으면 0

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def solve(self, n):
      while n > 1:
         n /= 2
      return n == 1

ob = Solution()
print(ob.solve(1024))

입력

1024

출력

True