gpt4 book ai didi

python - 计算一个函数被递归调用的次数(Python)

转载 作者:行者123 更新时间:2023-12-04 00:51:01 25 4
gpt4 key购买 nike

我目前正在制作一个程序,其中包含一个始终返回 1 的递归函数。
该函数如下所示:

def fn(n):
if n <= 1:
return n
elif n > 1 and n % 2 == 0:
return fn(n/2)
elif n > 1 and n % 2 > 0:
return fn(3*n+1)
由于我将创建其他函数,因此我需要创建一个函数来计算 fn() 函数内递归调用 fn() 的次数(“n”需要多少次调用才能达到 1)。我可以使用全局变量来做到这一点,但是我不确定如何使用另一个递归函数来做到这一点。任何帮助,将不胜感激。谢谢。

最佳答案

为什么不在您的函数中添加第二个参数并在递归调用时增加它?

def fn(n):
def _fn(n, calls):
if n <= 1:
return n, calls
# n > 1 is a given by this point.
return _fn(n / 2 if n % 2 == 0 else 3 * n + 1, calls + 1)

return _fn(n, 1)

关于python - 计算一个函数被递归调用的次数(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66646077/

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