前言
题目:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方
一、示例
二、思路和代码
1.思路
代码如下(示例):
排除不是2的倍数,然后一开始赋值变量为1,一直乘2,如果是2的幂,循环后,会相等。若不是2的幂,则大于参数n,返回false
2.代码
代码如下(示例):
bool isPowerOfTwo(int n){
if(1 == n) {
return true;
}
if(n%2 == 1) {
return false;
}
long a = 1;
while(a < n) {
a *= 2;
if(a == n) {
return true;
}
if(a > n) {
return false;
}
}
return false;
}
结果如图所示: