Leetcode練習(Python):第258題:各位相加:給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。


題目:

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

示例:

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

思路:

思路較簡單。

程序:

class Solution:
    def addDigits(self, num: int) -> int:
        if num == 0:
            return 0
        if len(str(num)) == 1:
            return num
        num = str(num)
        while len(num) > 1:
            auxiliary = 0
            for digit in num:
                auxiliary += int(digit)
            num = str(auxiliary)
        return int(num)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。(如何在類里面寫遞歸) java基礎練習 給定一個正整數m,統計m的位數,分別打印每一位數字,再按照逆序打印出各位數字。 2、牛牛想對一個數做若干次變換,直到這個數只剩下一位數字。 變換的規則是:將這個數變成 所有位數上的數字的乘積。比如285經過一次變換后轉化成2*8*5=80. 問題是,要做多少次變換,使得這個數變成個位 Leetcode練習(Python):哈希表類:第202題:編寫一個算法來判斷一個數 n 是不是快樂數。 「快樂數」定義為:對於一個正整數,每一次將該數替換為它每個位置上的數字的平方和,然后重復這個過程直到這個數變為 1,也可能是 無限循環 但始終變不到 1。如果 可以變為  1,那么這個數就是快樂數。 如果 n 是快樂數就返回 True ;不是,則返回 False 。 例子:循環語句--給定一個不超過5位的正整數,判斷該數的位數,依次打印出個位、十位、百位、千位、萬位的數字。 給出一個不多於5位的整數,要求 1、求出它是幾位數 2、分別輸出每一位數字 3、按逆序輸出各位數字,例如原數為321,應輸出123 給出一個不多於5位的正整數,要求:1.求出它是幾位數2.分別輸出每一位數字3.按逆序輸出各位數字,例如原數321應輸出123 給一個不多於5位的正整數,要求:①求出它是幾位數;②分別輸出每一位數字;③按逆序輸出各位數字,例如原數為321,應輸出123 給一個不多於5位的正整數,要求:①求出它是幾位數;②分別輸出每一位數字;③按逆序輸出各位數字,例如原數為321,應輸出123。
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM