给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x
例子
输入:n = 27
输出:true
输入:n = 0
输出:false
输入:n = 9
输出:true
输入:n = 45
输出:false
解题思路
循环法
① 循环除以3
② 判断余数是否为0
③ 如果是3的幂次方, 当余数不为0的时候结果为1
未翻译版
func isPowerOfThree(_ n: Int) -> Bool {
if n == 0 { return false }
var temp = n
while temp % 3 == 0 { temp /= 3 }
return temp == 1
}
翻译版
func isPowerOfThree(_ n: Int) -> Bool {
// 如果是0 直接返回
if n == 0 { return false }
// 定义temp为n
var temp = n
// 循环 当temp不为3时结束
while temp % 3 == 0 { temp /= 3 }
// 余数为1满足, 不为1不满足
return temp == 1
}
题目来源:力扣(LeetCode) 感谢力扣爸爸 :)
IOS 算法合集地址
网友评论