숫자 n이 있다고 가정합니다. n의 이진 표현이 회문인지 여부를 확인해야 합니다.
따라서 입력이 n =9와 같으면 9의 이진 표현이 회문인 1001이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- ans :=0
- num> 0일 때 수행
- ans :=ans * 2
- 숫자가 홀수이면
- ans :=XOR 1
- 숫자 :=숫자 / 2
- 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def reverse_binary(num) : ans = 0 while (num > 0) : ans = ans << 1 if num & 1 == 1 : ans = ans ^ 1 num = num >> 1 return ans def solve(n) : rev = reverse_binary(n) return n == rev n = 9 print(solve(n))
입력
9
출력
True