0
点赞
收藏
分享

微信扫一扫

326. 3 的幂、Leetcode的Go实现

梦为马 2022-03-12 阅读 83

326. 3 的幂
 

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

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

示例 1:

示例 2:

示例 3:

示例 4:

提示:


迭代:数学模拟的方式,一直对n进行除3取余

func isPowerOfThree(n int) bool {
    // 迭代
    if n <1 {
        return false
    }
    for n>1 {
        if n%3!=0 {
            return false
        }
        n/=3
    }
    return true
}

递归:思路同迭代

func isPowerOfThree(n int) bool {
    // 递归
    if n < 1{
        return false
    }
    if n==1 {
        return true
    }
    if n%3!=0 {
        return false
    }
    return isPowerOfThree(n/3)
}

数学运算:找到范围内最大的公约数,除n看余数是否为0【 3232 位有符号整数的范围内,最大的 33 的幂为 3^{19} = 1162261467319=1162261467。我们】

func isPowerOfThree(n int) bool {
    //数学运算
    return n>0 && 1162261467%n==0
}

 

举报

相关推荐

0 条评论