gpt4 book ai didi

python - 带初始化的递归函数

转载 作者:行者123 更新时间:2023-12-01 04:37:48 27 4
gpt4 key购买 nike

我正在尝试编写一个递归函数来对数字中的数字求和。我就是这样做的:

def f(N):
sum = 0
return foo(N,sum)

def foo(N, sum):
if N < 10:
sum = sum + N
# print 'N=', N
return sum
else:
sum = sum + N%10
# print 'N=', N, 'sum= ', sum
return sum and foo(N/10,sum)


res = f(5)
print 'N=5', 'res=', res
res = f(59)
print 'N=59', 'res=', res
res = f(568)
print 'N=568', 'res=', res

是否可以仅使用 f 函数(即没有“foo”函数)进行更简单的递归?

最佳答案

您不需要每次都传递总和

def f(N):
if N < 10:
return N
else:
return N%10 + foo(N/10)

根据需要添加打印内容。这将构建表达式并在到达底部后将它们添加在一起。

注意*如果 N 为负数,这将会中断。您可以在开头添加一个简单的检查,并使用否定执行类似的操作。

关于python - 带初始化的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31437660/

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