题目:
Given an integer, write a function to determine if it is a power of two.
分析:
判断是否是2的整数次幂。
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n<=0)
return false;
/* else if(n==1)
return true;
else{
while(n){
int t=n%2;
n/=2;
if(n==1&&t==0)
return true;
else if(t!=0)
return false;
}
}*/
//如果是2的整数次幂,则二进制中必定只有一位为1,即n&(n-1)==0
else if(!(n&(n-1)))
return true;
else
return false;
}
};
很奇怪,注释掉的方法竟然只要4ms,第二种方法明明只有几行,但允许却要8ms