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
}