新手尝试用 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)