342.4的幂

2020-05-07
4的幂

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。

 

题解:
思路1:递归
var isPowerOfFour = function (num) {
  while (num && num % 4 == 0) num /= 4; // 如果num%4不存在余数 继续
  return num === 1; // 退出循环后 如果最后的num是1 则符合要求
}

 

思路2:正则+位运算
// 2进制如何判断是否是2的幂? 1 = 2 ^0 10 = 2^1 100 = 2 ^ 2;
// 4进制如何判断是否是4的幂? 1 = 4 ^0 10 = 4^1 100 = 4 ^ 2;
var isPowerOfFour = function (num) {
  return /^10*$/.test(num.toString(4)); 
}

 

posted @ 2020-05-07 09:15  蓝小胖纸  阅读(92)  评论(0编辑  收藏  举报