给定long int x,计算满足以下条件的a的值的数量:
一个 XOR X > X
0 < 一 < X
其中a和x是长整数,XOR是按位XOR运算符
你会如何解决这个问题?
我还应该提到输入x可以大到10 ^ 10
我已经设法通过迭代0到x来检查条件并递增计数值来获得强力解决方案..但是这不是最佳解决方案......
这是我试过的蛮力.它可以工作,但对于x的大值非常慢.
for(int i =0; i < x; i++)
{
if((0 < i && i < x) && (i ^ x) > x)
count++;
}
Run Code Online (Sandbox Code Playgroud)