[leetcode]231. Power of Two/326. Power of Three -- JavaScript 代码

来源:互联网 发布:四知文言文答案 编辑:程序博客网 时间:2024/06/18 02:41
/** * @param {number} n * @return {boolean} */var isPowerOfTwo = function(n) {    if(n===0){        return false;    }    while((n>>1)>0){        if((n & 1)==1){            return false;        }        n = n>>1;    }    if(n!=1){        return false;    }    return true;};

这是一道简单题,使用循环或者递归判断n是否能被2整除即可。
但是,这道题最好的方法是使用位运算,可以大大的提高代码效率。

除了位运算,第326题还提供了一种新的思路:使用Math.log函数:

/** * @param {number} n * @return {boolean} */var isPowerOfThree = function(n) {    if(n===0){        return false;    }    var res = Math.log(n)/Math.log(3);    var res_round = Math.round(res);    if(Math.abs(res_round-res)<10e-15){        return true;    }    return false;};
0 0
原创粉丝点击