求star

开源不易,喜欢请点个star吧

Ocean Han
258 字
1 分钟
Leetcode->3的幂
2022-07-25

题目#

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false

整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x

示例 1:

输入:n = 27
输出:true

示例 2:

输入:n = 0
输出:false

示例 3:

输入:n = 9
输出:true

示例 4:

输入:n = 45
输出:false

提示:

  • -231 <= n <= 231 - 1

解题:key:#

①循环#

/**
 * @param {number} n
 * @return {boolean}
 */
var isPowerOfThree = function (n) {
    if (n < 1) return false
    let res = 0;
    while (n > 1) {
        if (res = n % 3) {
            return false
        }
        n /= 3
    }
    return true
};

②判断是否为最大3的幂的约数#

var isPowerOfThree = function(n) {
    while (n !== 0 && n % 3 === 0) {
        n = Math.floor(n / 3);
    }
    return n === 1;
};

③转换成3进制字符串后判断#

/**
 * @param {number} n
 * @return {boolean}
 */
var isPowerOfThree = function (n) {
    const str = n.toString(3)
    if (str[0] !== '1') return false
    for (let i = 1; i < str.length; i++) {
        if (str[i] !== '0') return false
    }
    return true
};
Leetcode->3的幂
https://blog.oceanh.top/posts/algorithm/3的幂/
作者
Ocean Han
发布于
2022-07-25
许可协议
CC BY-NC-SA 4.0
最后修改时间
2024-08-10 10:08:49