gpt4 book ai didi

python - 在 Python 递归中使用模数

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:28 24 4
gpt4 key购买 nike

尝试在 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)

结果如下:

>>> sumDigits(5678)
('x = ', 567, 'temp = ', 8)
('x = ', 56, 'temp = ', 6)
('x = ', 5, 'temp = ', 5)
('x = ', 0, 'temp = ', 4)
24
>>> sumDigits(3456789)
('x = ', 345678, 'temp = ', 9)
('x = ', 34567, 'temp = ', 7)
('x = ', 3456, 'temp = ', 6)
('x = ', 345, 'temp = ', 5)
('x = ', 34, 'temp = ', 4)
('x = ', 3, 'temp = ', 3)
('x = ', 0, 'temp = ', 2)
37
>>>

非常感谢您提供任何信息。

最佳答案

123455 是第一次出现。那么你实际上超过了 4-1、3-1、2-1、1-1

使用

return temp + sumDigits(x)

代替

return temp + sumDigits(x - 1)

你也应该在这里改变:

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

否则,它会额外添加一个

关于python - 在 Python 递归中使用模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com