RecursionError: maximum recursion depth exceeded
Питон ругается на видимо лимит рекурсии, хотя если я ее увеличу, все равно та же ошибка появится. НО, если я скопирую код с решуегэ, то все работает, если я напишу идентичный код вручную, то выдает ошибку, в чем причина?
Это из за глубины рекурсии дефолт 1000 меняем вот так
import sys
sys.setrecursionlimit(10**5)
Теперь 10^5
Причина, по которой возникает ошибка RecursionError: maximum recursion depth exceeded, связана с циклической зависимостью внутри функции F(n). Код рекурсивно вызывает сам себя бесконечно, когда n больше 1, что приводит к превышению глубины рекурсии. Проблема не в лимите рекурсии, а в логике функции.
Корректный код функции факториала:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(4)) # Вывод: 24
Ваш код создает бесконечный цикл вызовов, поэтому возникает ошибка. Если вы копируете код с РешуЕГЭ, убедитесь, что в коде нет логических ошибок. Вот пример корректного рекурсивного кода для вычисления факториала:
def F(n):
if n == 1:
return 1
else:
return F(n - 1) * n
print(F(4)) # Вывод: 24
Таким образом, проблема заключается в логике рекурсивного вызова. Проверьте исходный код на предмет ошибок в логике и убедитесь, что не создается бесконечный цикл вызовов.