标签:power
Power of Two : https://leetcode.com/problems/power-of-two/
Given an integer, write a function to determine if it is a power of two.
判断一个数是否是2的幂?
当无从下手时,可以根据例子找出规律。对于1,2,4,8,16它们的二进制表示分别是:
1: (1)
2: (10)
4: (100)
8: (1000)
16:(10000)
可以发现规律,凡是2的幂,只有最高位是 1,其他低位全为0.
而对于
if
或者判断,检测是否除了一个最高位 1,还有没有别的位是 1
class Solution {
public:
bool isPowerOfTwo(int n) {
if (n <= 0)
return false;
if (n & (n-1))
return false;
return true;
}
};
class Solution {
public:
bool isPowerOfTwo(int n) {
if (n <= 0)
return false;
while (n != 1) {
if (n & 0x01 == 1)
return false;
n = n >> 1;
}
return true;
}
};
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:power
原文地址:http://blog.csdn.net/quzhongxin/article/details/46944841