题目描述:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
代码如下:
public bool IsPowerOfTwo1(int n)
{
return n > 0 && (n & (n - 1)) == 0;
}
public bool IsPowerOfTwo2(int n)
{
return n % 2 == 0 ? n == 0 ? false : IsPowerOfTwo(n / 2) : n == 1;
}
public bool IsPowerOfTwo3(int n)
{
if (n <= 0)
return false;
while(true)
{
if (n == 1)
return true;
if (n % 2 != 0)
return false;
n /= 2;
}
}