当 n 和 x 是整数且 n>=x 时,n + x = n XOR x 有多少个 x 值?
For how many values of x will n + x = n XOR x when n and x are whole numbers and n>=x?
注意:比赛是 over.I 只是想知道解决这个问题的其他方法
n = int(input())
if n == 0:
print('1')
else:
print(1<<(str(bin(n)).count('0') - 1))
Chef 在他的数字逻辑设计中研究了 2 位二进制加法器 class。他对 XOR 运算符感到惊奇,他认为 a + b = a xor b,其中 a 和 b 是整数,xor 是按位异或运算符。
厨师老师最喜欢的数字是n。 Chef 的老师很生气,他给 Chef 一个整数 x (x <= n) 并要求 Chef 计算 n + x 以测试他对二进制加法的理解。厨师回答 n xor x。
输入
单个整数 n.
样本input:0
样本 output:1
样本input:5
样本 output: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
,忽略前导零和 returns 2k 作为答案,因为任何整数 x
打开了任意数量的这些位 - 将符合 n ^ x == n + x
注意:比赛是 over.I 只是想知道解决这个问题的其他方法
n = int(input())
if n == 0:
print('1')
else:
print(1<<(str(bin(n)).count('0') - 1))
Chef 在他的数字逻辑设计中研究了 2 位二进制加法器 class。他对 XOR 运算符感到惊奇,他认为 a + b = a xor b,其中 a 和 b 是整数,xor 是按位异或运算符。
厨师老师最喜欢的数字是n。 Chef 的老师很生气,他给 Chef 一个整数 x (x <= n) 并要求 Chef 计算 n + x 以测试他对二进制加法的理解。厨师回答 n xor x。
输入 单个整数 n.
样本input:0 样本 output:1
样本input:5 样本 output: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
,忽略前导零和 returns 2k 作为答案,因为任何整数 x
打开了任意数量的这些位 - 将符合 n ^ x == n + x