Swift 3的冪 - LeetCode

LeetCode

題目: 3的冪

描述:給定一個整數(shù),寫一個函數(shù)來判斷它是否是 3 的冪次方。

案例1:

輸入: 27
輸出: true

示例 2:

輸入: 0
輸出: false

案例 3:

輸入: 9
輸出: true

案例 4:

輸入: 45
輸出: false
方案一:使用循環(huán),當(dāng)整數(shù)除3的余數(shù)不為0時,不是3的冪,整數(shù)一直除3,最后值為1,則該整數(shù)是3的冪
代碼一:
func isPowerOfThree(_ n: Int) -> Bool {
    if n < 1 {
        return false
    }
    if n == 1 {
        return true
    }
    var s = n
    while s > 1 {
        if s % 3 != 0 {
            return false
        }
        s = s / 3
    }
    
    return true
}
執(zhí)行用時320ms
方案二:3的冪有個特性,他的約數(shù)必是3的冪,所以可以求一個不溢出情況下的最大3的冪整數(shù)去除所需要判斷的值,如果余數(shù)為0,則是3的冪
代碼二:
return n > 0 && (Int(pow(Double(3), Double(33))) % n == 0)

為啥是33、、、嗯,自己試試就知道了。。。、、、然后這個執(zhí)行用時,有時300多,有時200多、、、我也是不知道為什么


進(jìn)階執(zhí)行用時
用Swift開始學(xué)習(xí)算法中,在LeetCode中開始做初級算法這一章節(jié),將做的題目在此做個筆記,希望有更好方法同學(xué)們cue我哦。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言說明 算法學(xué)習(xí),日常刷題記錄。 題目連接 3的冪[https://leetcode-cn.com/proble...
    小鯊魚FF閱讀 740評論 0 0
  • 前言說明 算法學(xué)習(xí),日常刷題記錄。 題目連接 2的冪[https://leetcode-cn.com/proble...
    小鯊魚FF閱讀 896評論 0 0
  • 題目列表: 2的冪 3的冪 4的冪 2的冪 題目大意 給定一個整數(shù),編寫一個函數(shù)來判斷它是否是 2 的冪次方。示例...
    不要甜的紅燒肉閱讀 677評論 0 0
  • 給定一個整數(shù),寫一個函數(shù)來判斷它是否是 3 的冪次方。如果是,返回 true ;否則,返回 false 。 整數(shù) ...
    e8889d737099閱讀 173評論 0 0
  • 給定一個整數(shù),寫一個函數(shù)來判斷它是否是 3 的冪次方。 示例 1: 方法一: 用最常規(guī)的方法,直接用除余來判斷 如...
    Leeonh閱讀 1,401評論 0 0

友情鏈接更多精彩內(nèi)容