|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||||||
Рекурсия функции. Цикл выполнения19.03.2020, 15:31. Показов 869. Ответов 12
int main(коллеги, знаю замучал Вас уже)
{ Вот небольшой примерчик из книги Стивена Прата, кое что убрал, кое что добавил. Попросил бы если не сложно проверить мои комментарии, все ли я верно понимаю? Пример с факториалом, для меня пока сложный, его отложил, попробую пока так разобраться. Особенно интересуют строки - 28, 30
0
|
||||||
| 19.03.2020, 15:31 | |
|
Ответы с готовыми решениями:
12
Рекурсия порядок выполнения операторов
Рекурсия через цикл |
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
|
| 19.03.2020, 15:39 [ТС] | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.03.2020, 15:43 | |
|
R_U_S_V,
не очень понятно что вы называете первым проходом а что вторым? Добавлено через 45 секунд возврат из рекурсии или может у вас какое то другое представление обо всем этом?
1
|
|
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||
| 19.03.2020, 15:47 [ТС] | ||
|
Не уверен конечно. ОБРАТНЫЙ проход конечно же! Не второЙ!
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.03.2020, 16:00 | |
|
R_U_S_V,
Нет, в данном случае количество вызовов равно 5 ![]() Просто когда происходит рекурсивный вызов, в месте где функция вызывает сама себя происходит остановка первого вызова и код который печатает "пока" не выполнится до тех пор пока не отработает второй вызов и так продолжается до тех пор пока в каком то из вызовов мы проскочим условие, попадая в которое функция вызывает себя. А раз условие проскочили, то в этом вызове (последнем) уже очередь до печати "пока" доходит. Последний вызов таким образом завершается не вызывая больше самого себя. А кто вызывал последний раз функцию? Правильно, это был предпоследний вызов. Поэтому предпоследний вызов продолжает выполнение с момента рекурсивного вызова и тоже печатает "пока" так как он дождался завершения последнего вызова и так возвращаемся вплоть до самого первого вызова. Думаю с кодом было бы понятнее, но увы пишу с телефона и очень не удобно писать код.
1
|
|
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||
| 19.03.2020, 16:18 [ТС] | ||
|
Ну в целом, то вроде верно у меня там все? Могу сливать в библиотеку?
0
|
||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,679
|
||||||||||||
| 19.03.2020, 16:22 | ||||||||||||
void countdown(int n)
1
|
||||||||||||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||
| 19.03.2020, 16:26 [ТС] | ||
|
я просто потом убрал
0
|
||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
|
| 19.03.2020, 16:28 [ТС] | |
|
Вот еще на эту тему картинка
Насколько я понял это некая альтернатива циклам. Хотя пишут, что незаменимая вещь в реализации искусственного интеллекта
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.03.2020, 16:32 | |
|
R_U_S_V,
В целом комментарии похожи на правду ![]() Добавлено через 17 секунд R_U_S_V, В целом комментарии похожи на правду
1
|
|
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||
| 19.03.2020, 16:37 [ТС] | ||
|
0
|
||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,679
|
||
| 19.03.2020, 16:54 | ||
|
R_U_S_V, так вот откуда вы этот "обратный проход" взяли - отвратительная формулировка. Это выход из рекурсии, который тоже рекурсивен: сколько было вызовов (входов) - столько же будет и выходов.
0
|
||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||
| 19.03.2020, 17:00 [ТС] | ||
|
0
|
||
| 19.03.2020, 17:00 | |
|
Помогаю со студенческими работами здесь
13
Рекурсия на всех путях выполнения, функция вызовет переполнение стека Рекурсия VS Цикл Цикл + рекурсия Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|