题目链接 这题真的体现了自己思维的不足,考虑问题只是考虑他的特殊性,却不能总结出它的一般性规律. 对于这题, 如果L == R , 那么结果为0. 否则, 我们只需要找到最高的某一位 (二进制数中的某一位, 设为第p位, 从0开始编号), 使得要找的两个数从最高位到最低位, 在第p位第一次出现不同,如 11110000 和 11101111, 这里 p = 4. 这样,结果就是 (2^p) ^ (2^p -1) 附上代码: l, r = map(long, raw_input().split()…