326. Power of Three

Given an integer, write a function to determine if it is a power of three.
判断是不是3的次方,用递归一直除3。

/**
 * @param {number} n
 * @return {boolean}
 */
var isPowerOfThree = function(n) {
    if (n%1!==0) {
        return false;
    }
    if (n===1)
        return true;
    else if (n<3||n===0) {
        return false;
    } else {
        return isPowerOfThree(n/3);
    }
    //return (n > 0 && 1162261467 % n === 0);
};

注释掉的部分是一个取巧的办法,由于是整形,最大的3的次方是1162261467,我们要找的所有数都能被这个整除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容