检查 Python 中数字的二进制表示是否是回文数


假设我们有一个数字 n。我们必须检查 n 的二进制表示是否是回文数。

因此,如果输入如下 n = 9,则输出将为 True,因为 9 的二进制表示是 1001,它是回文数。

要解决这个问题,我们将遵循以下步骤 −

  • ans := 0
  • while num > 0, do
    • ans := ans * 2
    • 如果 num 为奇数,则
      • ans := ans XOR 1
    • num := num / 2
  • 返回 ans

让我们看以下实现以获得更好的理解 −

示例

 在线演示

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

更新于: 30-12-2020

254 次浏览

开始 职业生涯

完成课程获得认证

立即开始
广告