class Solution {
public:
bool isPowerOfTwo(int n) {
if(n<=0)
{
return false;
}
else
{
return log2(n)==(int)log2(n);
}
}
};
2的幂解题思路:
1、以2为底n的对数是不是整数
2、递归思想,被2除直到为1,返回true;或为0(奇数),返回false
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n==1)
{
return true;
}
if(n%2 != 0){
return false;
}
if(n==0){
return false;
}
return isPowerOfTwo(n/2);
}
};
class Solution {
public:
bool isPowerOfThree(int n) {
if(n<=0)
{
return false;
}
else
{
int x=(int)(log2(n)/log2(3));
return fabs(n-pow(3,x))<1e-8;
}
}
};
3、4的幂解题思路:
1、浮点数相等判断
2、递归思想,被3除直到为1,返回true;或为0(奇数),返回false