python递归函数出错:RuntimeError: maximum recursion depth exceeded

def f(m,n):
    if m==0|n==1:
        return 1
    elif m<n:
        return f(m,m)
    else:
        return f(m-n,n) + f(m,n-1)

为什么会一直跑最后一行呢

米鸽
浏览 1424回答 4
4回答

米鸽

查了一下发现python的逻辑或是or……改完就好了。

孤独的小猪

你这个函数是一直递归,已经超过python最大的递归上限,好像最大限度是1000,这是为了防止python防止溢出崩溃而设置的。可以手动调节,但不建议。import sys sys.setrecursionlimit(1500)  # set the maximum depth as 1500

慕粉2223462313

agreeeeeeeeeeeeeeeee with above

weibo_许1un_0

python3 不限定深度的情况下 递归深度上限100,python2 1000。 这个函数在重复递归,最后自然会报错。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python