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

Python에서 숫자의 이진 표현이 회문인지 확인

<시간/>

숫자 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