두 개의 숫자 x와 n이 있다고 가정합니다. 산술 연산자를 사용하지 않고 x가 2^n으로 나누어 떨어지는지 확인해야 합니다.
따라서 입력이 x =32 n =5와 같으면 출력은 32 =2^5와 같이 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- x AND(2^n - 1)가 0이면
- 참 반환
- 거짓을 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve (x, n): if (x & ((1 << n) - 1)) == 0: return True return False x = 32 n = 5 print(solve(x, n))
입력
32, 5
출력
True