0:43 - Что такое рекурсия? 2:17 - Алгоритм стека 4:00 - Цикл while 7:00 - Условие выхода из рекурсии 7:38 - Логика работы рекурсии 12:29 - Алгоритм выхода из рекурсии Когда переменная a = 0 срабатывает return 0; затем - 17:03
Ідеальне пояснення матеріалу. Мені , Ваші, уроки дуже сильно допомагають!!! Дякую, Вам, велике за цю працю, яку ви робите 100% не із-за великої зп))) Дуже мало таких людей як Ви.😌 Ви настільки влучно пояснюєте, як то, Ви самі вчора були джуніором а сьогодні вже сенйор і фокусуєтесь саме на тих моментах які не зрозумілі для новачка)))) Ще раз, Велике Вам дякую😌
Ще не вмерла України, ні слава, ні воля, Ще нам, браття молодії, усміхнеться доля! Згинуть наші воріженьки, як роса на сонці, Запануєм і ми, браття, у своїй сторонці! Душу й тіло ми положим за нашу свободу І - покажем, що ми, браття, козацького роду! Душу й тіло ми положим за нашу свободу І - покажем, що ми, браття, козацького роду!
Читал книги там действительно сразу объясняется на факториале числа на огромной функции, следовательно ничего не понятно было, особенно когда не знаешь даже что такое факториал числа. По вашему курсу гораздо легче воспринимать информацию. Респект и уважуха!
Лайк. Но хотелось бы, что бы вы в уроках указывали в каких случаях они используются:)) Например те же шаблоны, или inline, ну и собственно рекурсия. А то тема, мозги кипят, а к чему она применяется не поймешь. Так бы легче было.
Это основы программирования, которые в дальнейшем нужны будет для более сложной работы. Если он начнет объяснять, где это понадобится в дальнейшем, то это будет трудно понять, просто знай, что точно понадобится в будущем)
@@taguhinikoghosyan613 вообще то пихать в один урок сразу все - ничему не научишься. Тут выделили кусок, который отвечает за понимание механизма рекурсии и стэка вызовов. Есть такой принцип: делить сложное на простые части и с ними по отдельности разбираться, что автор и сделал. Можно заметить, что был предыдущий урок тоже про рекурсию, где автор рассматривал другие ее аспекты. Нормальный специалист конечно знает, где и что применяется. Видимо или вам не повезло с учителем или у вас предвзятое отношение и непонимание, как надо разбирать сложные вопросы.
@@QScientist думаю что всё же эффективней ученика столкнуть с проблемой, а потом уже научить как её решать, если наоборот то будут возникать вопросы "зачем?!", хотя может я и не прав. В любом случае качество уроков на безвозмездной основе на высоте.
Сергей, сердечное спасибо. Изучаю программирование самостоятельно по книгам, уже много раз хотелось бросить, наткнулся на ваши уроки и изучение программирования превратилось в удовольствие, мало того, теперь понятно, что написано в книгах !
Жаль что такие каналы (образовательные) имеют менее 100 000 подписчиков и не популярны в среде молодых людей . А про игры , кино , пранки и тд в трендах. Спасибо что объясняешь такие не простые вещи . Знание сила
Для сортировки больших массивов с рекурсией самая быстрая из всех сортировок. Она так и называется рекурсивная сортировка (Это я не для Вас пишу, а для других слушателей Ваших уроков). А Вам все равно спасибо за тонкости рекурсии, на которые я раньше не обращал внимания.
Понял, в каком порядке вызываются функции из стека, а вот почему в консоли выводится первым крайнее число, а не 0, никак не допру) ладно, уверен, с помощью следующих видео разберусь. Спасибо!!!!!
@@ДавидМархевка-л5й потому что у нас в функции есть cout который и выводит изменяющуюся переменную, пока рекурсия не дойдет до своего конца, а в конце уже функция и возвращает тот самый нолик
Возможно стоило сделать вывод переменной после рекурсивного вызова функции, чтобы увидеть, что такой вызов сработает после выполнения вызванной "дочерней" функции сверху. Наглядно - числа будут выводиться в обратном порядке.
Почему return 0 считается как вызов функции. Функция, которая последняя вызывалась была с нулём же 16:07. return 0 же результат работы foo(0).Может я чет не понимаю, отпишите те, кто шарит.
В пред последний вызов поступает 1, потом декрементом становится a = 0 и передается в return Foo(a), функция снова вызывается и срабатывает условие if (a < 1) return 0, что и возвращает как конечный результат функции Foo().
Из урока понял что рекурсию можно использовать в качестве задержки. Допустим когда параллельно выполняются две операции и результат первой является продолжением второй параллельно выполняющейся операции.
Они вроде не могут именно выполняться параллельно, предыдущая задача по идее уходит в ожидание результата работы следующей, просто скорость выполнения операций очень большая
Сергей, отличные уроки. Огромное вам спасибо! По уроку с рекурсией не совсем понял, зачем функция вызывается 7-ой раз, если уже на 6-ом вызове мы передали ноль в качестве параметра. По идее return 0 должен был отработать уже на 6 вызове. И не совсем понятно, как return 0 передается в предыдущие функции. Там какой-то буфер обмена или что-то в этом роде? С остальным вроде разобрался, принцип LIFO у стека понял. Вместо тарелок можно представить магазин автомата.
По аналогии с тарелками. Почему в консоли первым напечаталось число 4, а не число 0 ? Получается, что мы все-таки взяли тарелку с самого конца, а не с начала.
Вот я тоже не очень понял, вроде стоит cout в теле и как говорилось функция зашедшая последней выполняется первой, а про то, что вывод в консоль идет в обратном как-то не сказали ни слова. P. S. Пересмотрел урок 2 раз все понятно стало, вывод на экран идет только после завершения работы самой функии, я ее материнской(главной) для себя назвал, а дочерние в нее как бы закидывают свои значения в порядке работы сверху вниз. Мне кажется было бы удобней, для понимания, нарисовать каждый верхний блок чуть меньше по ширине нижнего, чтобы было понятно, что они находятся в теле материнской. А уроки просто отличные, очень жаль, что в моем университете не было такого преподавателя!
Понимаю , что поздно , но может потом кто-то ещё задастся этим вопросом и найдёт на него ответ. В данном случае cout стоит перед следующим входом в рекурсию , но после декремента , поэтому числа выводятся в порядке складывания тарелок , но если cout поставить после входа в функцию , то после того , как вернётся 0 , она начнёт выходить из функций именно с той , которая была последней (сверху стека) и т.к cout после этого выхода , то она выведет число , которое было последним( сверху стека).
Накидал функцию которая вычисляет факториал числа передаваемого ей, в качестве закрепления понятного =) template T FactorialGenereator(T input) { T res; input--; if (input == 0) { return 1; } res = input++ * FactorialGenereator(input); return res; }
Ну и для чего тут рекурсия? Ты б еще вычисление n-го числа Фибоначчи написал рекурсией. uint64_t fac(uint64_t n) { uint64_t ans = 1; for (unsigned i = 1; i
Если мы не попадаем в строку 21, где вызываем метод Foo и передаем аргументы, которая находится внутри функции Main, то как на экран выводится возвращаемое значение? Получается именно в самом конце когда доходим до 1 возвращается return 0, возвращая одним разом целиком сразу все 9 с половиной итераций? По другому вроде не получается 🤔 ,но почему тогда при точке останова всё выводится по очереди, то есть не целиком, а по одному раз оно не может дойти до 21 строки, пока не дойтёт до выхода из метода? В С# тот же самый принцип выполнения рекурсии?
Объясните мне только одно : почему если метод обработки тут FILO (first input last output), то функции не выдают результат в консоль в обратном порядке 0 1 2 3 4? я так понимаю, что выполняются они по принципу-первая поступила первая выполнилась, а стек очищается по принципу обратному или как?
@@sleepyNovember_project В данном случае основная работа функции (вывод числа) происходит во время заполнения стека, т.е. в прямом порядке. И уже потом в обратном порядке из стека выкидываются "отработавшие" функции. Для того, чтобы было наоборот, нужно поместить основную работу после рекурсивного вызова функции, вот так: int Foo(int a) { if (a < 1) { return 0; } a--; int result = Foo(a); // вызов функции std::cout
Понять не могу. 7:35 на этом тайминге он пишет if (a < 1) return 0; Почему нет никаких скобок фигурных и точек с запятой (кроме return)? И почему это работает?
Не понятны 2 момента: 1 Зачем было делать if с нулем, декремент все равно бы уменьшил "а" до 0 (допустим это придирка) 2 Почему функция в рекурсии передавалась через return, а не просто вызывалась в теле функции (и что происходит при вызове не через return) вот этот момент очень бы хотелось понять PS За уроки спасибо.
1) Нужно было останавливать рекурсию, без этого она бы ушла в (- бесконечность) 2) Можно без возвращения. Возвращение в данном примере было нужно для остановки рекурсии. Без return можно так написать void foo(int a){ if (a>0){ cout
Мужик красава, не смотря на все свои проблемы, находит время, чтобы делать видео и объяснять программирование. Спасибо)
Я не понимаю людей которые ставят Dislike, тут все доходчиво объясняется, спасибо автору!
быдлокодеры стаят дизы)
На самом деле просто у людей паркинсон. Не всегда получается попадать.
Согласен. Тут видимо только дибилы не могут понять
это конкуренты с других каналов.
Позволь поинересоваться, вот ты год назад посмотрел этот видос. Так вот, ты стал программистом?
0:43 - Что такое рекурсия?
2:17 - Алгоритм стека
4:00 - Цикл while
7:00 - Условие выхода из рекурсии
7:38 - Логика работы рекурсии
12:29 - Алгоритм выхода из рекурсии
Когда переменная a = 0 срабатывает return 0; затем - 17:03
Ідеальне пояснення матеріалу. Мені , Ваші, уроки дуже сильно допомагають!!!
Дякую, Вам, велике за цю працю, яку ви робите 100% не із-за великої зп))) Дуже мало таких людей як Ви.😌
Ви настільки влучно пояснюєте, як то, Ви самі вчора були джуніором а сьогодні вже сенйор і фокусуєтесь саме на тих моментах які не зрозумілі для новачка))))
Ще раз, Велике Вам дякую😌
Ще не вмерла України, ні слава, ні воля,
Ще нам, браття молодії, усміхнеться доля!
Згинуть наші воріженьки, як роса на сонці,
Запануєм і ми, браття, у своїй сторонці!
Душу й тіло ми положим за нашу свободу
І - покажем, що ми, браття, козацького роду!
Душу й тіло ми положим за нашу свободу
І - покажем, що ми, браття, козацького роду!
Огромное спасибо, обьяснено все на высшем уровне, спасибо с 1 курса института и я к вам скорее всего не один раз еще вернусь ^^
Читал книги там действительно сразу объясняется на факториале числа на огромной функции, следовательно ничего не понятно было, особенно когда не знаешь даже что такое факториал числа. По вашему курсу гораздо легче воспринимать информацию. Респект и уважуха!
не хочешь подружиться?
отличные уроки!
Спасибо за уроки!!!!! Лучший учитель))) Пересматриваю этот урок второй раз, по тихоньку понимаю рекурсию. Спасибо!
Отличный урок! Мне, спавшему 6 часов, всё понятно с первого раза! Спасибо!!!
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
Рекурсивно лайкаю уроки
Лайк. Но хотелось бы, что бы вы в уроках указывали в каких случаях они используются:)) Например те же шаблоны, или inline, ну и собственно рекурсия. А то тема, мозги кипят, а к чему она применяется не поймешь. Так бы легче было.
Это основы программирования, которые в дальнейшем нужны будет для более сложной работы. Если он начнет объяснять, где это понадобится в дальнейшем, то это будет трудно понять, просто знай, что точно понадобится в будущем)
Это глобальная проблема ) никакой учитель не отвечает на этот вопрос
@@taguhinikoghosyan613 вообще то пихать в один урок сразу все - ничему не научишься. Тут выделили кусок, который отвечает за понимание механизма рекурсии и стэка вызовов. Есть такой принцип: делить сложное на простые части и с ними по отдельности разбираться, что автор и сделал. Можно заметить, что был предыдущий урок тоже про рекурсию, где автор рассматривал другие ее аспекты. Нормальный специалист конечно знает, где и что применяется. Видимо или вам не повезло с учителем или у вас предвзятое отношение и непонимание, как надо разбирать сложные вопросы.
@@QScientist думаю что всё же эффективней ученика столкнуть с проблемой, а потом уже научить как её решать, если наоборот то будут возникать вопросы "зачем?!", хотя может я и не прав. В любом случае качество уроков на безвозмездной основе на высоте.
instablaster.
Не понимаю зачем ходить на курсы, если тут такие классные уроки.
Тема не самая простая, но нужно вникать. Спасибо вам большое за урок
Сергей, сердечное спасибо. Изучаю программирование самостоятельно по книгам, уже много раз хотелось бросить, наткнулся на ваши уроки и изучение программирования превратилось в удовольствие, мало того, теперь понятно, что написано в книгах !
Ставлю лайк прежде чем начинаю просмотр.
Жаль что такие каналы (образовательные) имеют менее 100 000 подписчиков и не популярны в среде молодых людей . А про игры , кино , пранки и тд в трендах. Спасибо что объясняешь такие не простые вещи . Знание сила
Тому-що ігри, кіно це жанр творчості. У багатьох ці жанри пов'язані з хорошими емоціями, і багатьом ці жанри запали в душу.
Как фармить быстрее всех? Зачем на самом деле нужны диффуза?)
Спасибо за урок
#рекурсия #SimpleCode #урокипрограммирования
А почему у if не было области видимости?
@@mrtonomon407 потому что использовалась всего одна строка, при этом область видимости не нужна.
У вас там ошибка! Было 6 вызовов функции, а не 7. В стеке 6 должно быть.
Первый вызов - функция выводит 4
Второй - 3
Третий - 2
Четвертый - 1
Пятый - 0
Шестой - срабатывает условие return 0
Автору большое спасибо, все доходчиво объясняет, я лично понимаю с полуслова!
Большое спасибо за урок, Сергей!
Спасибо.
Пришлось посмотреть ролик 2 раза, но в итоге я понял, спасибо огромное за ваш труд !
Спасибо большое за отличное объяснение!
Все доступно и понятно объясняется, спасибо.
Супер! Спасибо за урок
Спасибо тебе добрый человек за разъяснения!
Спасибо
Божееееественно!!!! Все понятно!!!! Огонь! Спасибо тебе огромное!!!
Лучший препод которого я встречал !)) Спасибо за урок
Спасибо! До сих про актуально.
Самое лучшее объяснение! Спасибо!
Спасибо. Понятно в общих чертах.
Отличный урок , тоже смотрел про рекурсию думал что понял ,теперь понял.
Спасибо за урок!
Благодарю, спасибо Вам большое!
Спасибо Серега за уроки
Для сортировки больших массивов с рекурсией самая быстрая из всех сортировок. Она так и называется рекурсивная сортировка (Это я не для Вас пишу, а для других слушателей Ваших уроков). А Вам все равно спасибо за тонкости рекурсии, на которые я раньше не обращал внимания.
Мне в свое время помогла понять асоция с плоской пружинкой :)
"Если что это слово return" тут я орнул ибо думал что он пишет "четыре")))
16:25
Спасибо вам большое, наконец то понял ))
Спасибо, ты очень доступно объяснил
Гениально объяснил!Спасибо большое!
Спасибо! Всё доходчиво и понятно!
спасибо ,очень доходчиво объясняешь ,респект
Понял, в каком порядке вызываются функции из стека, а вот почему в консоли выводится первым крайнее число, а не 0, никак не допру) ладно, уверен, с помощью следующих видео разберусь. Спасибо!!!!!
ляяя это как раз таки мой главный вопрос, уже понял как? Я не могу понять...
@@ДавидМархевка-л5йс того момента уж воды утекло))) пошел во фронты вообще
@@ДавидМархевка-л5й потому что у нас в функции есть cout который и выводит изменяющуюся переменную, пока рекурсия не дойдет до своего конца, а в конце уже функция и возвращает тот самый нолик
СПАСИБО ЗА УРОК!))
Спасибо тебе огромное за такие уроки !
Возможно стоило сделать вывод переменной после рекурсивного вызова функции, чтобы увидеть, что такой вызов сработает после выполнения вызванной "дочерней" функции сверху. Наглядно - числа будут выводиться в обратном порядке.
The best teacher
Огромное спасибо благодаря вам , я действительно понял рекурсию
int out(int a) //Функция int out с параметром a=10;
{
if (a < 1) //Если а=0;
return 0; //Срабатывает return out(a);
cout
Прям понятно стало, спасибо!)
Спасибо за урок.
Вот ещё такой монстр :)))
#include
using namespace std;
int func2(int);
int func(int a)
{
cout
Спасибо!!!🥰🥰🥰
3:36 наша программка крашится
😍
🥰
😛
#спасибо
ведео гуд,спасибо
я и подписался и лайкнул не знаю чем ещё благодарить
добрий день, чий канал можете порадити по С#, бо Ви проводите курс дуже класно, але це не те що мені потрібно, моя Вам подяка авансом. !!!!!!!!
Спасибо!
Очень доходчиво ))) Спасибо
СПАСИБО
Короче кто не понял смотрим фильм "Начало" с Ди Каприо...хд) не благодарите
Топ комент)
Топ коммент
👏👏👏👏
Или поиграйте с матрёшкой (внутри которой ещё матрёшка)
четко подметил
Super uroki Respekt Bro
Класс !
Почему return 0 считается как вызов функции. Функция, которая последняя вызывалась была с нулём же 16:07. return 0 же результат работы foo(0).Может я чет не понимаю, отпишите те, кто шарит.
В пред последний вызов поступает 1, потом декрементом становится a = 0 и передается в return Foo(a), функция снова вызывается и срабатывает условие if (a < 1) return 0, что и возвращает как конечный результат функции Foo().
Я понял так:
return 0 в данном случае считается не вызовом функции, а просто ещё одним добавлением задачи в стек
сложная тема,спасибо)
Из урока понял что рекурсию можно использовать в качестве задержки. Допустим когда параллельно выполняются две операции и результат первой является продолжением второй параллельно выполняющейся операции.
Они вроде не могут именно выполняться параллельно, предыдущая задача по идее уходит в ожидание результата работы следующей, просто скорость выполнения операций очень большая
Что-то ты не то понял. Читай про concurrency, future / promise
Удачи в развитии канала)))
Отлично учишь, спасибо!
+ Like
+ Subscribe
"Это ноль такой"- убило))) НО уроки очень полезны)
Сергей, отличные уроки. Огромное вам спасибо!
По уроку с рекурсией не совсем понял, зачем функция вызывается 7-ой раз, если уже на 6-ом вызове мы передали ноль в качестве параметра. По идее return 0 должен был отработать уже на 6 вызове. И не совсем понятно, как return 0 передается в предыдущие функции. Там какой-то буфер обмена или что-то в этом роде? С остальным вроде разобрался, принцип LIFO у стека понял. Вместо тарелок можно представить магазин автомата.
Из-за твоего комментария я кажется понял...
Она походу и так после return 0 завершается, а дальше таким образом просто идёт очищение стека
Лучший
По аналогии с тарелками. Почему в консоли первым напечаталось число 4, а не число 0 ? Получается, что мы все-таки взяли тарелку с самого конца, а не с начала.
Как я понял, аналогия с тарелками относится не к выводу числа на экран, а к завершению функций.
какой тогда вообще смысл ее использования, если с циклом проще?
потому что cout стоит после декремента
Вот я тоже не очень понял, вроде стоит cout в теле и как говорилось функция зашедшая последней выполняется первой, а про то, что вывод в консоль идет в обратном как-то не сказали ни слова.
P. S. Пересмотрел урок 2 раз все понятно стало, вывод на экран идет только после завершения работы самой функии, я ее материнской(главной) для себя назвал, а дочерние в нее как бы закидывают свои значения в порядке работы сверху вниз. Мне кажется было бы удобней, для понимания, нарисовать каждый верхний блок чуть меньше по ширине нижнего, чтобы было понятно, что они находятся в теле материнской. А уроки просто отличные, очень жаль, что в моем университете не было такого преподавателя!
Понимаю , что поздно , но может потом кто-то ещё задастся этим вопросом и найдёт на него ответ. В данном случае cout стоит перед следующим входом в рекурсию , но после декремента , поэтому числа выводятся в порядке складывания тарелок , но если cout поставить после входа в функцию , то после того , как вернётся 0 , она начнёт выходить из функций именно с той , которая была последней (сверху стека) и т.к cout после этого выхода , то она выведет число , которое было последним( сверху стека).
16:27 - если что, то это переполнение стека🤣
Накидал функцию которая вычисляет факториал числа передаваемого ей, в качестве закрепления понятного =)
template
T FactorialGenereator(T input) {
T res;
input--;
if (input == 0) {
return 1;
}
res = input++ * FactorialGenereator(input);
return res;
}
Ну и для чего тут рекурсия? Ты б еще вычисление n-го числа Фибоначчи написал рекурсией.
uint64_t fac(uint64_t n)
{
uint64_t ans = 1;
for (unsigned i = 1; i
input-- / input++
что это за дичь?
uint64_t fac(uint64_t n)
{
return (n < 2) ? 1 : n * fac(n-1);
}
Учу Джава по вашим роликам, в просторах Ютюба нету уроков по Джава как ваши на С++. ориентируюсь на ваш контент ))). вернитесь
43й урок за 2 дня, все конечно понятно но мозги кипят, будь проклят этот карантин
Спасибо, очень многое понятно, а есть видео с быстрой сортировкой через рекурсию?
привет из 2023. Большое спасибо за уроки!
Что это значит 17:07 ?
Если мы не попадаем в строку 21, где вызываем метод Foo и передаем аргументы, которая находится внутри функции Main, то как на экран выводится возвращаемое значение? Получается именно в самом конце когда доходим до 1 возвращается return 0, возвращая одним разом целиком сразу все 9 с половиной итераций? По другому вроде не получается 🤔 ,но почему тогда при точке останова всё выводится по очереди, то есть не целиком, а по одному раз оно не может дойти до 21 строки, пока не дойтёт до выхода из метода?
В С# тот же самый принцип выполнения рекурсии?
Подобный цикл я реализовал в void. Подскажите правильно или нет? Или можна как то лучше оптимизировать?
void Test(int a)
{
cout
Да, все верно. Разве что можно вызывать Test(a - 1) и не использовать декремент
Объясните мне только одно : почему если метод обработки тут FILO (first input last output), то функции не выдают результат в консоль в обратном порядке 0 1 2 3 4? я так понимаю, что выполняются они по принципу-первая поступила первая выполнилась, а стек очищается по принципу обратному или как?
Так cout стразу выдавал результат...
Я тоже именно этими вопросами задался, не понимаю
@@sleepyNovember_project В данном случае основная работа функции (вывод числа) происходит во время заполнения стека, т.е. в прямом порядке. И уже потом в обратном порядке из стека выкидываются "отработавшие" функции. Для того, чтобы было наоборот, нужно поместить основную работу после рекурсивного вызова функции, вот так:
int Foo(int a) {
if (a < 1) {
return 0;
}
a--;
int result = Foo(a); // вызов функции
std::cout
Кто знает какого максимального значения stack может быть? И возможно ли его размер как-то регулировать? Или это просто тех возможности оперативки?
программа насчитала ~4783
В настройках компилятора задается.
👍👍👍
Прикольно
Заебочек спасибо!
вот по этой теме было бы круто дз получить, нужно немного практики чтобы понять как с этим работать
Как дз можно посчитать тот же факториал самостоятельно, а следующий урок рассматривать как объяснение дз
15:22 КАКИЕ ВАШИ ДАКАЗАТЕЛЬСТВА!
Nice
Спсб
👍
Понять не могу. 7:35 на этом тайминге он пишет
if (a < 1)
return 0;
Почему нет никаких скобок фигурных и точек с запятой (кроме return)? И почему это работает?
@@CrimAnn1662 спасибо тебе большое! И спасибо за совет с chatgpt, буду пользоваться!
Не понятны 2 момента:
1 Зачем было делать if с нулем, декремент все равно бы уменьшил "а" до 0 (допустим это придирка)
2 Почему функция в рекурсии передавалась через return, а не просто вызывалась в теле функции (и что происходит при вызове не через return)
вот этот момент очень бы хотелось понять
PS За уроки спасибо.
1) Нужно было останавливать рекурсию, без этого она бы ушла в (- бесконечность)
2) Можно без возвращения. Возвращение в данном примере было нужно для остановки рекурсии. Без return можно так написать
void foo(int a){
if (a>0){
cout
ну я так понял функци должна что то делать, то есть возвращать результат. В случае с void она просто покажет изменения счетчика
обновил visual studio 2019 при этом изменилась цветовая палитра. С ней неприятно работать, где взять конфиг с прежней цветовой палитрой.
Получается рекурсия много ресурсов жрёт раз так стэк заполняет?
Спасибо за уроки!😊 Очень понятные и полезные :)
но она потом удаляет всё это, но по идее это как и с циклом, но рекурсия не создает новых переменных и тд, так что она кажется быстрее работает.
@@ДавидМархевка-л5й Она работает медленнее.
Смотрю, потому что забыл что такое рекурсия и не мог заснуть xD
то есть это почти тоже самое, что если бы я написал цикл while? или не совсем?