/*方法一:用2除。*/
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n < 1) return false;
while(n != 1){
if((n & 1) != 0) return false;
n /= 2;
}
return true;
}
};
/*方法二:如果n为2的次幂的数,则二进制表示的n中。
1的个数为1,所以可以采用位操作。*/
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n <= 0) return false;
int count = 0;
for(int i = 0; i < 32; ++i){
if(((n >> i) & 1) == 1) ++count;
}
return count == 1;
}
};
LeetCode之Power of Two
最新推荐文章于 2020-01-31 14:18:36 发布