擅长:python、mysql、java
<p>Hans已经提供了一个迭代解决方案,可以满足您的需求,这里是一个递归方法</p>
<p>你做得很对,但正如汉斯指出的那样,“你从来没有对逻辑进行编码,这样做直到我们得到的答案少于10。”。只是将该条件添加到代码已经执行的操作中</p>
<pre><code>def sum_digits(num):
'''
Returns the sum of individual digits in a number
eg: 123 -> 1+2+3 -> 6
'''
if num<10:
return num
q,r=divmod(num,10)
return r+sum_digits(q)
def sum_till_single_digit(num):
'''
Does `sum_digits` recursively till the sum is a single digit
eg: 99 -> 9+9 -> 18 -> 1+8 -> 9
'''
if num<10:
return num
return sum_till_single_digit(sum_digits(num))
print(sum_till_single_digit(27640)) # 1
</code></pre>