Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Python. Вывод рекурсивных функций. Какая-то проблема в условии?

Доброго дня! Около недели назад в первый раз начал изучать Python, и передо мной встала задачка, по выводу рекурсивной функции (Скрин).
  • Первые два значения вышли нормально, далее "RecursionError".
  • Я увеличил лимит, после чего перестала выпадать ошибка, но и результата программа далее так и не выдаёт. Программа будто решила, что она сделала всю работу и завершила расчёт. Какая-то проблема в условии? Или?
Спасибо!
ПрограммированиеPython
Макс
Python Q
  · 1,0 K
зож, сны, мистика, wi-fi  · 7 мая 2022
Переполнение стека, stack overflow. Каждый вызов функции помещается на верх стека, после выполнения, снимается. Стек у вашей программы ограничен.
Когда функция бесконечно вызывает саму себя, если вызовов слишком много, происходит ошибка переполнения стека.
Программа не решила, что сделала всю работу, вы каким-то образом запретили ей выдавать ошибку переполнения, поэтому она ее не выдала.
Веб-разработчик, геймер, специалист по этике  · 9 мая 2022
Ваша программа нарушает, наверное, все негласные правила написания рекурсивных функций, какие существуют. Их, правда, не так много: 1. Обязательно должно быть условие гарантированной остановки; 2. Рекурсивный вызов должен стремиться приблизиться к условию остановки; 3. Если возможно, нужно пользоваться хвостовой рекурсией. У вас же условие `c==0` приводит к новому... Читать далее
1 эксперт согласен