# 检测 2 的幂次
# 难度:简单
# 描述:
检测整数 n 是否是 2 的幂次
# 样例:
n=8,返回 true;
n=10,返回 false.
# 思路分析:
使用Math.pow()来检测当前值是否为 2 的幂次
# 代码模板:
/**
* @param n: An integer
* @return: True or false
*/
const checkPowerOf2 = function(n) {}
1
2
3
4
5
2
3
4
5
# 想一想再看答案
# 想一想再看答案
# 想一想再看答案
# 代码:
const checkPowerOf2 = function(n) {
var i = 0
// 一步步增加2的幂次 并对比
while (i < 32) {
let multiple = Math.pow(2, i) // 当前幂次
if (n === multiple) {
return true // 是2的幂次
}
if (multiple > n) return false // n小于当前幂次 return false 取消无 用遍历 缩短运行时间
i++
}
return false
}
console.log(checkPowerOf2(8), checkPowerOf2(10))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14