列表

详情


326. 3 的幂

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

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

 

示例 1:

输入:n = 27
输出:true

示例 2:

输入:n = 0
输出:false

示例 3:

输入:n = 9
输出:true

示例 4:

输入:n = 45
输出:false

 

提示:

 

进阶:你能不使用循环或者递归来完成本题吗?

相似题目

2 的幂

4的幂

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool isPowerOfThree(int n) { } };

golang 解法, 执行用时: 20 ms, 内存消耗: 6.5 MB, 提交时间: 2021-09-23 15:25:44

func isPowerOfThree(n int) bool {
    k := 1162261467  // 2^30 < 3^19 < 2^31
    return n >0 && k % n == 0
}

golang 解法, 执行用时: 28 ms, 内存消耗: 6.4 MB, 提交时间: 2021-06-18 17:55:08

func isPowerOfThree(n int) bool {
    // 循环法
    /*
    for n % 3 == 0 {
        n /= 3
    }
    return n == 1
    */
    // 数学公式法
    k := 1162261467  // 2^30 < 3^19 < 2^31
    return n >0 && k % n == 0
}

上一题