1. 程式人生 > >Leetcode刷題python(3)

Leetcode刷題python(3)

各位相加

#題目

給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。

示例:

輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個問題嗎?

#解答

class Solution:
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int
        """
        num_str=str(num)
        while len(num_str)>1:
            num_list=[]
            for i in range(len(num_str)):
                num_list.append(int(num_str[i]))
            num=sum(num_list)
            num_str=str(num)
        return num
        ```



還是將數值型轉為字串,發現自己只會用簡單的迴圈,弱爆了!
        進階問題還沒想到方法去解決。