小编del*_*eMe的帖子

在 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)
Run Code Online (Sandbox Code Playgroud)

结果如下:

>>> sumDigits(5678)
('x = ', 567, 'temp = ', 8)
('x = ', 56, 'temp = ', 6)
('x = ', 5, 'temp = ', 5)
('x = ', 0, 'temp = ', 4)
24
>>> sumDigits(3456789)
('x …
Run Code Online (Sandbox Code Playgroud)

python modulus

1
推荐指数
1
解决办法
1061
查看次数

标签 统计

modulus ×1

python ×1