2 的幂-简单

难度:简单

题目描述:
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例:

输入: 1;
输出: true;
解释: 20 = 1;
输入: 16;
输出: true;
解释: 24 = 16;
1
2
3
4
5
6


解题思路:

var isPowerOfTwo = function (n) {
  if (n === 0) return false;
  while (n >= 2) {
    n = n / 2;
  }
  return n === 1;
};
1
2
3
4
5
6
7


2 倍数的整数最高位必为 1;
num&(num-1) 可以删去该数二进制最后一位 1.因此我们只需要把 n(n-1),然后判断是否为 0,为 0 则是 2 的幂,否则不是。

var isPowerOfTwo = function (n) {
  return n > 0 && !(n & (n - 1));
};
1
2
3
最后更新时间: 5/16/2020, 9:06:40 PM