题目描述:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。
leetcode地址
bool isPowerOfTwo(int n){
if(n==0){
return false;
}
int x = (int)(log2(n)+1e-8);
return fabs(n - pow(2,x)) < 1e-8;
}
我的疑问是用C可以过,但是用C++会报以下的错误:
由于输入是负数,没有办法进行log运算,所以要先进行输入值的判断。