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