• Предмет: Информатика
  • Автор: nikolaenkooksana113
  • Вопрос задан 1 год назад

как в питоне работать с очень большими числами?

программа число 13 выходит, а 1300 уже выдает ошибку

как исправить?


def f(n):

if n==1: return 1

if n>1: return n*f(n-1)


print (f(1300))

Ответы

Ответ дал: AleksejVer
1

Объяснение:

В ошибке же всё понятно сказано. Ты вызываешь такое большое количество рекурсий (функция запускает саму себя), что Python на всякий случай душит твой скрипт для недопущения переполнения памяти. Защита от созданных по ошибке бесконечных рекурсий. По умолчанию лимит установлен в 1000 рекурсий.


Если ты понимаешь, что делаешь, то можно перед основным кодом вызвать модуль sys и указать иной лимит рекурсий:

import sys

sys.setrecursionlimit(1500)  # не более 1500 рекурсий


nikolaenkooksana113: Благодарю! с этим кодом все отлично теперь
Вас заинтересует