Power of Two

Given an integer, write a function to determine if it is a power of two.
1、Mycode
class Solution {
public:
bool isPowerOfTwo(double n) {
int k = 1;
if (n <= 0)
{
return 0;
}
if(n == 1)
return 1;
while ((n / pow(2.0, k)) >= 1)
{
if ((n / pow(2.0, k) == 1))
return 1;
k++;
 
}
return 0;
}
};
2、 Reference Answer
class Solution {
public:
bool isPowerOfTwo(int n) {
return (n>0) && (!(n&(n-1)));
}
};
bool isPowerOfTwo(int n) {
int count = 0;
while (n > 0)
{
count+=(n&0x01);
n>>=1;
}
return count==1;
}
 
posted @ 2016-06-15 14:38  dylqt  阅读(136)  评论(0编辑  收藏  举报