TGViewer
Точка входа в программирование Точка входа в программирование @prog_point · 17.9K subscribers
Post #5195 251
Рекурсия: базового случая недостаточно

У функции есть условие остановки, но выполнение до него не доходит. Например, вычитать из числа по два и ждать нуля бесполезно, если начали с нечётного числа.

Нужно проверить и базовый случай, и движение к нему. В примере сумма цифр вычисляется так:

def digit_sum(n):
if n < 0:
return digit_sum(-n)
if n < 10:
return n
return n % 10 + digit_sum(n // 10)

print(digit_sum(1234)) # 10


Для целого неотрицательного числа деление на 10 сокращает задачу, пока не останется одна цифра. Вызовы ждут результатов друг друга и занимают место в стеке.

В учебном разборе рекурсии есть задачи на вложенные списки и повторяющиеся подзадачи. Увеличение лимита рекурсии не исправляет алгоритм, который не приближается к остановке.
  • ❤‍🔥 1
More from @prog_point
  1. Oct 16, 2026Что Big O говорит о скорости, а что скрывает Два вложенных цикла не обязательно выполняют…
  2. Oct 15, 2026SQL CASE: превращаем категории товаров в подписи CASE выбирает значение для вывода. В учеб…
  3. Oct 14, 2026Как убрать файл из будущего коммита и сохранить правки После git add изменения попадают в…
  4. Oct 14, 2026Почему функция Python помнит старые элементы списка В функции с параметром items=[] пустой…
  5. Oct 14, 2026Почему правило ниже в CSS не меняет цвет ссылки? Порядок записи решает только при равной с…
  6. Oct 13, 2026Post #5190
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →