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

숫자에 Python에서 처음과 마지막 비트만 설정되어 있는지 확인하십시오.

<시간/>

숫자 n이 있다고 가정합니다. 숫자가 처음과 마지막 위치에 2개의 설정 비트만 있는지 확인해야 합니다.

따라서 입력이 n =17과 같으면 n의 이진 표현이 10001이므로 출력은 True가 됩니다. 처음과 마지막 위치에 1이 두 개뿐입니다.

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

  • n이 1과 같으면
    • 참 반환
  • n - 1이 2의 거듭제곱이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

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

예시 코드

def is_pow_of_two(n):return (n &n-1) ==0def solve(n):n ==1인 경우:True return is_pow_of_two (n-1) n =17print(solve(n)) 

입력

17

출력

사실