숫자 n이 있다고 가정합니다. 이것이 2의 거듭제곱인지 아닌지 확인해야 합니다.
따라서 입력이 n =2048과 같으면 2048이 2^11이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
n이 0과 같으면
-
거짓을 반환
-
-
(n AND (n - 1))이 0과 같으면 true를 반환하고 그렇지 않으면 false
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(n): if n == 0: return False return (n & (n - 1)) == 0 n = 2048 print(solve(n))
입력
2048
출력
True