給定一個(gè)整數(shù),寫一個(gè)函數(shù)來(lái)判斷它是否是 3 的冪次方。如果是,返回 true ;否則,返回 false 。整數(shù) n 是 3 的冪次方需滿足:存在整數(shù) x 使得 n == 3^x
例子
輸入:n = 27
輸出:true
輸入:n = 0
輸出:false
輸入:n = 9
輸出:true
輸入:n = 45
輸出:false
解題思路
循環(huán)法
① 循環(huán)除以3
② 判斷余數(shù)是否為0
③ 如果是3的冪次方, 當(dāng)余數(shù)不為0的時(shí)候結(jié)果為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
// 循環(huán) 當(dāng)temp不為3時(shí)結(jié)束
while temp % 3 == 0 { temp /= 3 }
// 余數(shù)為1滿足, 不為1不滿足
return temp == 1
}
題目來(lái)源:力扣(LeetCode) 感謝力扣爸爸 :)
IOS 算法合集地址