입력받은 수가 2의 거듭제곱인지 판별해서 여부를 리턴해라.
function powerOfTwo(num){
if(num === 1) {
return true; // 2의 0승은 1이다.
}
if(num%2!==0) {
return false; // 2의 거듭제곱을 구하는데 2로 나눴을 때 나머지가 있으면 당연히 안되겠지
}
let power = 2; // 밑은 2로 설정
while(power<num) {
power = power * 2; // power는 2로 할당해놨으니까 2를 계속 곱해서 num보다 작을 때까지 반복한다.
}
return power === num; // while문을 빠져나온 power가 num이랑 같은지 판별한다.
// 같으면 true, 아니면 false
}
function powerOfTwo(num){
// num이 1보다 크거나 같을때까지 while문을 돌리면서 계속 2로 나눈다.
while(num>=1) {
if(num === 1) {
return true; // 2의 거듭제곱들을 2로 나누다 보면 1이 된다. 그럼 true 리턴
}
num = num / 2; // 계속 2로 나눠서 while문 돌린다.
}
return false; // while문 이외의 것들은 false 리턴
}