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)); }