powerOfTwo
문제
수를 입력받아 2의 거듭제곱인지 여부를 리턴해야 합니다.
입력
인자 1 : num
출력
주의 사항
- 반복문(while)문을 사용해야 합니다.
- 2의 0승은 1입니다.
- Number.isInteger, Math.log2, Math.log 사용은 금지됩니다.
입출력 예시
let output1 = powerOfTwo(16);
console.log(output1); // true
let output2 = powerOfTwo(22);
console.log(output2); // false
코드
// 작성 코드
function powerOfTwo(num) {
while(num >= 1){
if (num & (num - 1)){
return false}
else{
return true}
}
}
// 작성 코드2
function powerOfTwo(num) {
if(num === 1) {
return true
}
let x = 2;
while (x < num) {
x *= 2;
}
return x === num;
}
// 레퍼런스 코드
function powerOfTwo(num) {
if (num === 1) {
return true;
}
if (num % 2) {
return false;
}
let powered = 2;
while (powered < num) {
powered = powered * 2;
}
return powered === num;
}