国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 开原市| 二连浩特市| 时尚| 通化市| 永定县| 阜城县| 乌什县| 吉林市| 武宁县| 苏尼特右旗| 乃东县| 绥化市| 正宁县| 遂昌县| 安徽省| 黄浦区| 宜章县| 瓮安县| 山阴县| 勃利县| 昔阳县| 泽库县| 水城县| 秦安县| 土默特右旗| 谢通门县| 广安市| 磴口县| 洪江市| 清原| 常州市| 博湖县| 宝山区| 和林格尔县| 乌鲁木齐县| 栾城县| 文化| 吉林省| 长顺县| 湖口县| 体育|