题意:给定两个数m,n,求区间[M,N]上所有数的AND的结果。
分析:由于区间[m,n]是连续的,由二进制数的特点,求该区间上所有数的AND结果相当于求m和n的都为1的共同前缀。
代码:
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int count=0;
while(m!=n){
m>>=1;
n>>=1;
count++;
}
return m<<count;
}
};