题目:给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x
链接: 力扣Leetcode—高级算法—数学—3的幂.
示例1 :
输出:n = 27
输入:true
示例2 :
输出:n = 0
输入:false
示例3 :
输出:n = 9
输入:true
示例4 :
输出:n = 45
输入:false
标签:递归、数学
思路:暴力求,一直判断n是否为2的倍数
次要Go代码如下:
package mainimport ( "fmt")func isPowerOfThree(n int) bool { if n == 0 { return false } // 3 的 0 次方 if n == 1 { return true } for n != 1 { pop := n % 3 if pop != 0 { return false } n /= 3 } return true}func main() { var n int fmt.Scanf("%d", &n) fmt.Println(isPowerOfThree(n))}
提交截图: