天天看點

力扣(leetcode) 258. 各位相加 (暴力枚舉法)(數學法)

題目在這:​​https://leetcode-cn.com/problems/add-digits/​​

法一:

思路分析:

這題沒什麼好說的。直接暴力。

完整代碼:

class Solution:
    def addDigits(self, num: int) -> int:
            while True:
                sum = 0
                while True:
                    num,rem = divmod(num,10)
                    sum += rem
                    if num < 10:
                        sum += num
                        break
                if sum < 10:
                    break
                num = sum
            print(sum)
            return sum      

送出!

力扣(leetcode) 258. 各位相加 (暴力枚舉法)(數學法)

法二:

思路分析:

題目還有個進階要求,時間 1.

一般這種題要求 時間1的 基本都是要使用一寫 數學規律。不然肯定得循環,一下就逾時了。

于是看了大佬們的總結。

def addDigits(self, num: int) -> int:
       if num == 0:
           return 0
       elif num % 9 == 0:
           return 9
       return num % 9