python - 如何在 Python 2.7 中实现迭代函数的递归函数?

标签 python python-2.7 recursion

我在 python 2.7 中编写了一个函数来计算给定数字的数字和:

def dig_sum(n):
    s = 0
    while n:
         s = s + n % 10
         n = n/10
    return s

现在尝试将其重写为递归函数:

def dig_sum(n):
    s = 0
    if n != 0:
        s = n % 10
        s += s
        return dig_sum(n/10)
    return s

我的递归函数有什么问题?执行此类功能时的最佳做法是什么? 提前致谢!

最佳答案

递归函数看起来像这样

def dig_sum(n):
    if n < 10:                       # Handle single digits as your base case
        return n
    else:
        return n%10 + dig_sum(n/10)  # Add one's digit, then shift and continue

测试

>>> dig_sum(1001)
2

>>> dig_sum(12345)
15

关于python - 如何在 Python 2.7 中实现迭代函数的递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024972/

相关文章:

python - DataAugmentation 方法在我的数据集中添加了多少图像? (CNN 凯拉斯)

python - 在 Python 中使用 .join() 为数组中除第一列以外的所有列着色

将 C 中的迭代算法更改为递归

javascript - 使用 ajax 更新 Bokeh 图

python - 如何删除 tkinter 中的菜单栏?

python - OpenCV错误:参数-p/-prototxt是必需的

python - 在 Windows 7 64 位中设置 pip

java - 递归相关: Product of two numbers

assembly - 未处理的异常 : Recursive Factorial in assembly (MASM)

python - 在python中使用public_key进行KeyCloak解码