326. 3 的幂、Leetcode的Go实现

梦为马

关注

阅读 83

2022-03-12

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)

0 0 举报