[Python] Can't change recursion limit python

Discussão em 'Python' iniciado por Stack, Janeiro 12, 2025.

  1. Stack

    Stack Membro Participativo

    sys.setrecursionlimit is set to 20000, but I get error because of "996 more times", despite setting limit to a bigger number

    import sys
    from functools import *


    sys.setrecursionlimit(20000)


    @lru_cache(None)
    def f(n):
    if n <= 3:
    return n - 1
    if n > 3:
    if n % 2 == 0:
    return f(n - 2) + (n / 2) - f(n - 4)
    else:
    return f(n - 1) * n + f(n - 2)



    result = f(4952) + 2 * f(4958) + f(4964)
    print(result)


    error:

    Traceback (most recent call last):
    File "-", line 21, in <module>
    result = f(4952) + 2 * f(4958) + f(4964)
    ^^^^^^^
    File "-", line 14, in f
    return f(n - 2) + (n / 2) - f(n - 4)
    ^^^^^^^^
    File "-", line 14, in f
    return f(n - 2) + (n / 2) - f(n - 4)
    ^^^^^^^^
    File "-", line 14, in f
    return f(n - 2) + (n / 2) - f(n - 4)
    ^^^^^^^^
    [Previous line repeated 996 more times]
    RecursionError: maximum recursion depth exceeded


    the answer should be 9200

    Why doesn't sys.setrecursionlimit change the limit?

    Continue reading...

Compartilhe esta Página