您的位置:首页 > Web前端 > JavaScript

[LeetCode][JavaScript]Power of Two

2015-07-06 13:31 896 查看

Power of Two

Given an integer, write a function to determine if it is a power of two.

https://leetcode.com/problems/power-of-two/

二分。

2的整数次幂,要么开方后是整数(这个数也是2的整数次幂),要么除以2之后再开方后是整数。继续递归判断开方后的结果直到碰到1或者2。

比如1024(2^10),是由两个32(2^5)相乘;2048(2^11),是由两个32(2^5)相乘,再乘以2。

/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfTwo = function(n) {
if(n < 1){
return false;
}else if(n === 2 || n === 1){
return true;
}else{
var sqrt = Math.sqrt(n);
if(sqrt === parseInt(sqrt)){
return isPowerOfTwo(sqrt);
}else{
n = n / 2;
sqrt = Math.sqrt(n);
if(sqrt === parseInt(sqrt)){
return isPowerOfTwo(sqrt);
}else{
return false;
}
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: