258. Add Digits

xiaoxiao2021-02-27  195

循环 class Solution(object): def addDigits(self, num): """ :type num: int :rtype: int """ while num >= 10: temp = 0 while num: temp += num % 10 num = num / 10 num = temp return num

内部的while循环用于将数字的每位加起来,但是这个和有可能大于等于10,所以需要继续这个过程,这就有了外层的while

不用循环

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 = 1

10 % 9 = 1

100 % 9 = 1

so N % 9 = a[0] + a[1] + ..a[n]

means N % 9 = M

so 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
转载请注明原文地址: https://www.6miu.com/read-12618.html

最新回复(0)