Bitwise AND of Numbers Range

解法1:

因为是一群连续的数,所以必定含有奇数和偶数(当多余一个数的时候),则最后一位必定有1有0,则相于的结果一定是0.

解法2:

1: n & (n-1) 的作用是把n的二进制中的最右边的1去掉。

2:
m = prefix+1+(若干个0)+1+anystring1(长度被限制)

n = prefix+1+(若干个0)+0+anystring2(长度被限制)

r = prefix+1+(若干个0)+0+(都是0,长度被限制)

明显m在不断的删掉最右边的1的时候数字会不断变小,但只有删除最重要的那个1的时候,m才会小于n,此时m正好等于r。即结果。

你可能感兴趣的:(Bitwise AND of Numbers Range)