LeetCode題解(0258):求整數各位相加的最終得數(Python)

題目:原題鏈接(簡單)

解法 執行用時
Ans 1 (Python) 44ms (65.86%)
Ans 2 (Python) 44ms (65.86%)
Ans 3 (Python) 36ms (94.40%)

LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。

解法一(轉換爲字符串實現):

def addDigits(self, num: int) -> int:
    while num >= 10:
        ans = 0
        for c in str(num):
            ans += int(c)
        num = ans
    return num

解法二(數學運算實現):

def addDigits(self, num: int) -> int:
    while num >= 10:
        ans = 0
        while num > 0:
            ans += num % 10
            num //= 10
        num = ans
    return num

解法三(數學方法):

def addDigits(self, num: int) -> int:
    if num == 0:
        return 0
    else:
        return (num - 1) % 9 + 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章