숫자 n과 다른 값 k가 있다고 가정합니다. n의 k번째 비트가 설정(1) 또는 설정 해제(0)되었는지 확인해야 합니다. k의 값은 오른쪽에서 고려됩니다.
따라서 입력이 n =18 k =2와 같으면 출력은 18의 이진 형식으로 10010으로 설정되므로 두 번째 마지막 비트는 1(설정)입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- temp :=비트를 오른쪽으로 (k - 1)번 이동한 후 n
- temp AND 1이 1이면
- "설정" 반환
- "설정되지 않음" 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
def solve(n,k): temp = n >> (k - 1) if temp & 1: return "Set" return "Unset" n = 18 k = 2 print(solve(n, k))
입력
18
출력
Set