如何修改此Python函数以使用递归

时间:2017-05-15 14:29:19

标签: python algorithm recursion

我有一个简单的函数可以打破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

1 个答案:

答案 0 :(得分:-1)

您使用的代码不是递归。递归有两个主要特征:基本情况和递归。

现在,让我们为您解决问题:

基本情况:

假设我们的数字小于10.然后我们将返回该数字。让我们把它作为我们的基本案例。

<强>递归:

如果我们有一个...xyzxyz作为数字),我们会取最后一位数字,加上剩余数字的最后一位数字,直到我们的数字小于10。

<强>代码:

def sumnum (n):
    if n < 10:
        return n
    return n % 10 + sumnum(n // 10)