LeetCode 231. Power of Two
題目
Given an integer, write a function to determine if it is a power of two.
翻譯
判斷一個整數是否是2的次方數。
思路
只要n大於3不斷的將輸入值n除2,如果發現餘數不等於0,那他就不是2的次方數。
解題
/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfTwo = function(n) {
if(n <= 0) return false;
if(n === 1) return true;
while(n>3){
if(n%2 != 0) return false;
n = parseInt(n/2);
}
return n%2 === 0;
};
Plus
例用javascript的特性,稍為改寫一下,增加效能
/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfTwo = function(n) {
if(n <= 0) return false;
if(n === 1) return true;
while(n>5){
n = n/2;
}
return n%2 === 0;
};