数字和【难度:1级】:
答案1:
def sum_digits(n):
return n if n < 10 else sum_digits(sum(int(i) for i in str(n)))
答案2:
def sum_digits(n):
return 0 if (n == 0) else 1 + ((n-1) %9)
答案3:
sum_digits=lambda n: (lambda i: 0 if i==0 else (i-1)%9+1)(int(n))
答案4:
def sum_digits(n):
return (n - 1) % 9 + 1 if n else 0
答案5:
def sum_digits(n):
while n >= 10:
n = sum(int(a) for a in str(n))
return n
答案6:
def sum_digits(n):
while n > 9:
n = sum([int(el) for el in list(str(n))])
return n
答案7:
def sum_digits(n):
if n < 10:
return n
else:
a = str(n)
res = 0
for i in a:
res = res + int(i)
return sum_digits(res)
答案8:
def sum_digits(n):
while len(str(n)) > 1:
n = sum(int(c) for c in str(n))
return n
答案9:
def sum_digits(n):
s = n
while s > 9:
s = digit_sum(s)
return s
def digit_sum(n):
s = 0
while n:
s += n % 10
n //= 10
return s
答案10:
def sum_digits(n):
st = str(n)
while len(st)>1:
st = str(sum(int(x) for x in st))
return int(st)