我们需要编写一个函数,说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