JavaScript 中检查 2 的幂
我们需要编写一个函数,isPowerOfTwo(),它接收一个正数,并根据该数是否是某个 2 的幂,返回一个布尔值。
例如 −
console.log(isPowerOfTwo(3)); //false console.log(isPowerOfTwo(32)); //true console.log(isPowerOfTwo(2048)); //true console.log(isPowerOfTwo(256)); //true console.log(isPowerOfTwo(22)); //false
让我们编写此函数的代码,它将是一个非常简单的递归函数,只要数字保持可被 2 整除就不断递归,如果在此过程中该数字一直减小到 1,它就是 2 的幂,否则不是。代码如下 −
示例
const isPowerOfTwo = num => { if(num === 1){ return true; }; if(num % 2 !== 0){ return false; } return isPowerOfTwo(num / 2); } console.log(isPowerOfTwo(3)); console.log(isPowerOfTwo(32)); console.log(isPowerOfTwo(2048)); console.log(isPowerOfTwo(256)); console.log(isPowerOfTwo(22));
输出
控制台中的输出如下 −
false true true true false
广告