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,我们要找的所有数都能被这个整除。

你可能感兴趣的:(326. Power of Three)