Автор | Сообщение |
|
Отправлено: 08.02.22 19:58. Заголовок: задание 80 егэ16
Здравствуйте. Решаю данную рекурсию, как только i становится 6 и более, перестает вычислять рекурсию. Посмотрите, пожалуйста, программу. В чем ошибаюсь def f(n): if n<=5: return n elif n%3==0: return n+f(n/3+2) else: return n+f(n+3) i=0 while f(i)<=1000: i+=1 print(i, f(i))
|
|
|
Ответов - 1
[только новые]
|
|
|
| Администратор
|
Сообщение: 3285
|
|
Отправлено: 09.02.22 11:18. Заголовок: Понятно, что когда р..
Понятно, что когда рекурсия пошла по второй ветке, она по крайней мере в некоторых случаях начинает бесконечно раскручиваться. Как бороться: а) ловить исключение по переполнению стека; б) считать количество вложенных вызовов и прекращать процесс, скажем, при 100 вызовах. Примеры программ есть в темах этого раздела, посмотрите.
|
|
|