python - 当 n 和 x 是整数且 n>=x 时,对于 x 的多少个值,n + x = n 异或 x ?

标签 python python-3.x bit-manipulation xor

注意:比赛结束了。我只是想知道解决这个问题的其他方法

n = int(input())
if n == 0:
    print('1')
else:
    print(1<<(str(bin(n)).count('0') - 1)) 

Chef 在他的数字逻辑设计类(class)中学习了 2 位二进制加法器。他对 XOR 运算符感到惊讶,并认为 a + b = a xor b,其中 a 和 b 是整数,xor 是按位 XOR 运算符。

厨师的老师最喜欢的数字是n。 Chef 的老师很生气,他给了 Chef 一个整数 x (x <= n) 并要求 Chef 计算 n + x 以测试他对二进制加法的理解。厨师回答 n x 或 x。

输入 单个整数 n。

示例输入:0 示例输出:1

示例输入:5 示例输出:2

最佳答案

建议的解决方案:

n = int(input())
if n == 0:
    print('1')
else:
    print(pow(2, (str(bin(n)).count('0')-1)))

当 n = 0 时,它输出 1,当 n = 5 时,它输出 2 等等。

它执行与上述解决方案相同的操作:计算 n 的二进制表示形式中的零 k 数量,忽略前导零,然后返回2k 作为答案,因为任何打开任意数量的这些位的整数 x - 将符合 n ^ x == n + x >

关于python - 当 n 和 x 是整数且 n>=x 时,对于 x 的多少个值,n + x = n 异或 x ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46868422/

相关文章:

python - json.decoder.JSONDecodeError : Expecting value: line 1 column 2 (char 1)

python - "print"和 "range"在 Windows 的不同 Python shell 中工作不同(或根本不工作)?

python - 我可以用 kivy 语言编写动画吗?

c - 为什么按位除法不像按位乘法那样工作?

c++ - 带位的长枚举

python - 如何阻止 WSGI 挂起 apache

Python `bin` 负整数

javascript - C# 按位异或计算在 R 或 NodeJS 中似乎很容易

python - win10toast 导致 tkinter 窗口卡住

python-3.x - Astropy:确定一个点(RA,DEC)是否在给定该区域角坐标的方形区域内