国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Add Digits

2019-11-08 20:17:21
字體:
供稿:網(wǎng)友
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

For example:

Given num = 38, the PRocess is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.

Follow up:Could you do it without any loop/recursion in O(1) runtime?

Hint:

Show HintA naive implementation of the above process is trivial. Could you come up with other methods?Show More Hint What are all the possible results?Show More HintHow do they occur, periodically or randomly?Show More HintYou may find this Wikipedia article useful.
3 methods for python with explainsIteration method
      class Solution(object):      def addDigits(self, num):        """        :type num: int        :rtype: int        """        while(num >= 10):            temp = 0            while(num > 0):                temp += num % 10                num /= 10            num = temp        return num
Digital Rootthis method depends on the truth:N=(a[0] * 1 + a[1] * 10 + ...a[n] * 10 ^n),and a[0]...a[n] are all between [0,9]we set M = a[0] + a[1] + ..a[n]and another truth is that:1 % 9 = 110 % 9 = 1100 % 9 = 1so N % 9 = a[0] + a[1] + ..a[n]means N % 9 = Mso N = M (% 9)as 9 % 9 = 0,so we can make (n - 1) % 9 + 1 to help us solve the problem when n is 9.as N is 9, ( 9 - 1) % 9 + 1 = 9
class Solution(object):def addDigits(self, num):    """    :type num: int    :rtype: int    """    if num == 0 : return 0    else:return (num - 1) % 9 + 1
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 马尔康县| 古丈县| 平舆县| 天镇县| 宁陕县| 台南市| 阿克陶县| 嘉禾县| 富蕴县| 阿坝县| 南和县| 石狮市| 奉节县| 新龙县| 安溪县| 浮梁县| 拉孜县| 天镇县| 红桥区| 凯里市| 南皮县| 醴陵市| 嵩明县| 中阳县| 静乐县| 上饶县| 闽侯县| 河源市| 望江县| 富裕县| 巨野县| 淮南市| 蒲江县| 江津市| 兴山县| 永定县| 宾阳县| 六安市| 涞水县| 许昌市| 砀山县|