生成XOR为N的所有数字对

时间:2016-12-13 07:09:44

标签: bit-manipulation computer-science

我需要找到生成所有对(A,B)的方法,使得A <= 10 ^ 5,B <= 10 ^ 5,N <= 10 ^ 5且A XOR B == N.N作为输入。

我知道平方时间的解决方案,检查两个fors中的所有值,但我认为有更快的解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

以下内容应该有效:

for A = 0 to 65536 do /* 65536 > 10^5 / 2 */
    B = A xor N
    if A <= 100000 and B <= 100000
        print A, B
        print B, A