我有一个简单的函数可以打破54
之类的数字并返回这两个数字的总和(即9
)。我也在研究递归,我想知道下面的代码是否符合标准。为什么?或者为什么不呢?如果不是如何使用递归范例解决这个简单的问题?
def sumnum(n):
n = str(n)
a = []
for i in n:
a.append(i)
sum(int(n) for n in a)
sumnum(54)
9
答案 0 :(得分:-1)
您使用的代码不是递归。递归有两个主要特征:基本情况和递归。
现在,让我们为您解决问题:
基本情况:
假设我们的数字小于10.然后我们将返回该数字。让我们把它作为我们的基本案例。
<强>递归:强>
如果我们有一个...xyz
(x
,y
和z
作为数字),我们会取最后一位数字,加上剩余数字的最后一位数字,直到我们的数字小于10。
<强>代码:强>
def sumnum (n):
if n < 10:
return n
return n % 10 + sumnum(n // 10)