숫자 n이 있다고 가정합니다. 주어진 숫자 n에 대해 모든 비트가 설정(1)되었는지 확인해야 합니다.
따라서 입력이 n =255와 같으면 255의 이진 표현이 11111111이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 숫자가 0과 같으면
- 거짓을 반환
- 숫자> 0, do
- 숫자가 짝수이면
- 거짓을 반환
- 숫자 :=(숫자 / 2)의 몫
- 숫자가 짝수이면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
def solve(number): if number == 0: return False while number > 0: if (number & 1) == 0: return False number = number >> 1 return True n = 255 print(solve(n))
입력
255
출력
True