在Python中递归中使用模

2024-09-24 22:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试用Python中的递归函数添加int的位数。当我使用print语句进行调试时,可以看到我的程序正在计算除倒数第二位之外的所有数字。例如,如果我传入数字(12345),程序将计算5,然后跳过4,然后计算剩余的数字。任何数字都会发生这种情况。我想知道为什么模数会隔离所有的数字,除了倒数第二个数字。(这个结果在其他方面也是不正确的,但是我想集中讨论一下模数是如何递归地工作的。)

代码是:

def sumDigits(x):
    if x <= 0:
        return 1
    else:
        temp = x % 10
        x = x / 10
        print ('x = ', x, 'temp = ', temp)
        return temp + sumDigits(x -1)

结果是:

^{pr2}$

非常感谢你的任何信息。在


Tags: 代码程序returnifdef情况数字语句
1条回答
网友
1楼 · 发布于 2024-09-24 22:21:38

12345,这里5是第一次。然后你实际上通过了4-1,3-1,2-1,1-1

使用

return temp + sumDigits(x)

而不是

^{pr2}$

您还应该在此处更改:

def sumDigits(x):
    if x <= 0:
        return 0

否则,会增加一个

相关问题 更多 >