ЧТО ТАКОЕ РЕКУРСИЯ C# | ПЕРЕПОЛНЕНИЕ СТЕКА | СТЕК ВЫЗОВОВ |  C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 49

ЧТО ТАКОЕ РЕКУРСИЯ C# | ПЕРЕПОЛНЕНИЕ СТЕКА | СТЕК ВЫЗОВОВ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 49

#SimpleCode

4 года назад

105,819 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

ZuraevD
ZuraevD - 23.09.2023 11:09

жмакнуть

Ответить
Artem Ky3bmu4
Artem Ky3bmu4 - 30.08.2023 09:43

Thank you

Ответить
Denis Akula
Denis Akula - 07.08.2023 11:29

Спасибо вам большое Сергей! Благодаря вам непростые темы становятся гораздо легче и понятнее!

Ответить
xD_Play_Dynast_io
xD_Play_Dynast_io - 30.07.2023 09:02

Ваши задания очень интересны)👍

Ответить
the nyan
the nyan - 30.06.2023 20:30

Я заметил вот что, после того как выполняется команда return, то в каждом рекурсивном методе выполняются как бы остатки этого метода, то есть все что было после вызова метода, будет выполнятся. С помощью той же рекурсии можно создать простой метод инвертирования того же массива

Ответить
Kind Noob
Kind Noob - 20.04.2023 23:28

Смотрю с первого видео, мне 13 лет, учу по книгам и твоим видеоурокам уже второй месяц, хочу стать backend разрабом через пару лет, спасибо за уроки

Ответить
Potat
Potat - 14.04.2023 17:43

Ты умный

Ответить
Евгений Маслов
Евгений Маслов - 06.04.2023 13:20

Чтобы рекурсивный метод возвращал значение, пришлось повозиться.

using System;

namespace Lessons_9
{
internal class Program
{
static void PrintArray(in int[] array, int index = 0)
{
Console.WriteLine(array[index]);
if (index >= array.Length - 1)
{
return;
}
++index;
PrintArray(array, index);
}

static int SumArray(in int[] array, int index = 0)
{
if (index == array.Length)
{
return 0;
}

return array[index] + SumArray(array, ++index);
}

static int SumNumberOfArray(int number, int maxIndex)
{
if (maxIndex == 0)
{
return number;
}
int expo = Convert.ToInt32(Math.Pow(10, maxIndex));
return number / expo + SumNumberOfArray(number % expo, --maxIndex);
}

public static void Main(string[] args)
{
int[] myArray = { 2, 5, 6, 3 };

Console.WriteLine("Задание 1 вывод массива");
PrintArray(myArray);
Console.WriteLine();

Console.WriteLine("Задание 2 сумма элементов массива");
Console.WriteLine(SumArray(myArray));
Console.WriteLine();

Console.WriteLine("Задание 3 сумма цифр числа");
Console.WriteLine("Введите число, чтобы найти сумму цифр числа");
string number = Console.ReadLine();
int result = SumNumberOfArray(int.Parse(number), number.Length - 1);
Console.WriteLine(result);
}
}
}

Ответить
Леонид Бодак
Леонид Бодак - 01.04.2023 21:56

ДЗ очень нужны! По сути задачу можно и самому себе придумать, но во-первых это её еще придумать надо, а во-вторых потом не с чем сравнить то что ты наворотил. А так смотришь потом, и думаешь "Тю, так можно же было все значительно проще сделать!")) Ну или "О, и я так сделал", это тоже радует)

Ответить
Sweet sleepS
Sweet sleepS - 23.12.2022 22:58

using System;


namespace Домашнее_задание_рекурсия
{
internal class Program
{
static void Sum(int i, ref int sum, params int[] array)
{
if (i < array.Length)
{
sum += array[i];
i++;
Sum(i, ref sum, array);
}


}
static void Foo(int i,params int[] array)
{

if (i <=array.Length)
{
Console.Write(iarray[i]+ " ");
i++;
Foo(i,array);
}

}
static void Sum2(int a, ref int sum)
{
if (a > 0)
{
int c = a / 10;
int d = a - c * 10;
sum += d;
a = c;
Sum2(a,ref sum);
}

}


static void Main(string[] args)
{

int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Foo(0,array);
Console.WriteLine();
int sum = 0;
Sum(0,ref sum,array);
Console.WriteLine("Сумма всех элементов массива равна " + sum);
Console.WriteLine("Введите любое число");
int a = int.Parse(Console.ReadLine());
sum= 0;
Sum2(a, ref sum);


Console.WriteLine($"Сумма всех элементов числа равна {sum }");
}
}
}

Ответить
Павел
Павел - 14.11.2022 15:36

Из личного опыта пример где можно применить рекурсию... это удаление файлов и папок, если на сайте много страниц и нужно получитьти какую либо информацию (парсинг)

Ответить
Школа трейдинга Александра Тимофеева
Школа трейдинга Александра Тимофеева - 03.11.2022 14:38

Спасибо огромное за ваши труды! Подскажите пожалуйста, что означает значение переменной double = 5d; что означает 5d ? Заранее спасибо!

Ответить
Елизавета Гирёва
Елизавета Гирёва - 20.10.2022 22:57

а можете сделать простую рекурсию для факториала, у меня что то не получается)

Ответить
Андрей Данилов
Андрей Данилов - 03.10.2022 02:20

Конечно нужны домашнии задания! Они и их разборы ОЧЕНЬ интересные)))) Спасибо☺

Ответить
pharaoh's curse
pharaoh's curse - 02.10.2022 18:23

У каждой функции есть свой стек, или он общий для всей программы?

Ответить
SpeeRit
SpeeRit - 28.09.2022 20:49

домашки нужны и очень интересно ломать себе голову

Ответить
Поляна накрыта
Поляна накрыта - 26.09.2022 08:02

3 метод у меня такой

static void Prikol(int a,int i =0,int sum=0)//
{
string str; str=Convert.ToString(a);
char[] chars = str.ToCharArray();//конвертирую строку в массив char
sum += int.Parse(chars[i].ToString());//конвертирую char в строку потом в int32
i++;
if (i == chars.Length) { Console.WriteLine("Сумма "+a+" = " + sum);return; }
Prikol(a,i,sum);
}
//Cпасибо за уроки!!!

Ответить
Denys Liutenko
Denys Liutenko - 12.09.2022 12:13

Что ж все так запутано? Уроки великолепны, но вторую часть урока вообще не понял. Еще и переменные, которые отличаются только большой или малой буквой это взрыв мозга. Думаю, что не стоит так забегать вперед, ведь уроки смотрят не только люди с опытом в программировании. Всем удачи, мы справимся!
Домашние задания ОБЯЗАТЕЛЬНО нужны! Где еще новичкам практиковатся?
Хотя Д/з решил вообще без проблем. Спасибо

Ответить
Andrey
Andrey - 01.09.2022 16:03

Вроде получились домашки, но есть проблемка в 2 и 3 - после верного решения, продолжается вывод предыдуших решений со стека, и как его остановить я не понял, нужно разбор смотреть)

Ответить
Артем Николаевич
Артем Николаевич - 26.08.2022 12:15

Большое спасибо за урок.

Ответить
Empty
Empty - 05.08.2022 14:26

Немногие смогли дойти до сюда, жаль. Видимо не все готовы так много времени посвятить проге.

Ответить
Olga Ivolgin
Olga Ivolgin - 04.08.2022 20:07

Сергей огромное спасибо , у вас талант объяснять легко и профессионально !
Уроки остаются в памяти и придают уверенность !

Ответить
Влад Аюшеев
Влад Аюшеев - 02.08.2022 19:10

Ура дз

Ответить
Руслан Озеров
Руслан Озеров - 20.07.2022 02:25

Конечно домашние задания нужны! Только с помощью них мы понимаем все пройденные материалы)

Ответить
Александр Гребенюк
Александр Гребенюк - 19.07.2022 23:01

Вот там где рекурсия item там я уже нихрена не понял прям совсем ничего. И домашку пожалуй тоже пропущу.

Ответить
Haiwiaksbab
Haiwiaksbab - 23.06.2022 00:45

Твои забигания на перед все рушат

Ответить
Brick Gaming
Brick Gaming - 21.06.2022 18:35

ДЗ == ТОП

Ответить
Владимир Новиков
Владимир Новиков - 18.06.2022 18:47

Рекурсия - ненужная и вредная вещь

Ответить
Jang Sung-rak
Jang Sung-rak - 28.05.2022 10:53

Спасибо за домашку

Ответить
Константин Якущенко
Константин Якущенко - 07.05.2022 22:49

Может я что-то где-то пропустил в роликах до этого, но почему у бесконечного цикла нету оверфлоу? Как такой цикл использует память?

Ответить
Roman Marchuk
Roman Marchuk - 01.04.2022 15:58

Домашні завдання потрібні)))

Ответить
Александр Стогов
Александр Стогов - 17.03.2022 02:05

Домашки огонь, вот бы побольше.

Ответить
Александр Стогов
Александр Стогов - 17.03.2022 01:04

Спасибо большое, надеюсь у вас и дальше будет интересовать ютуб.

Ответить
SHEDRY
SHEDRY - 09.03.2022 12:18

А что в итоге лучше (быстрее /оптимизированее)? Рекурсия или цикл?

Ответить
Razarvater
Razarvater - 23.02.2022 21:59

Домашние задания, очень интересны и разумеется очень нужны, ведь без практики бессмысленно изучать теорию!) Огромное спасибо за ваши уроки!

Ответить
Алексей Кавылин
Алексей Кавылин - 17.02.2022 09:57

автору спасибо. Домашние задания однозначно способствуют закреплению темы. Но слишком уж быстро автор скачет по материалу. сходу не понять

Ответить
yegor
yegor - 10.02.2022 13:29

Здравствуйте, я нихуя не понял про ООП, помогите пожалуйста

Ответить
Александр Меньков
Александр Меньков - 28.01.2022 16:26

Сергей! Сделайте, пожалуйста, ещё домашних заданий по С#. Пусть они будут платными, он не дорогими, мне кажется будут востребованы!

Ответить
nikita
nikita - 18.12.2021 13:55

Сергей, Спасибо Вам огромное за Ваш Труд!
Дз очень нужны!!!

Ответить
Sherif Uchenik
Sherif Uchenik - 09.12.2021 15:02

Если до этого урока, где не было еще объектов и классов я себя чувствовал комфортно, то в конце этого урока, где речь зашла о Child, Item я как буд-то попал на другую планету, надеюсь дальше будет легче все это понять, когда будем изучать ООП.

Ответить
The Shamil
The Shamil - 12.11.2021 14:04

Зачем тогда использовать рекурсию, если это можно сделать с помощью циклов? Тем более, рекурсия имеет куча недостатков, чего нельзя сказать про цикл.

Ответить
ARTLine studio
ARTLine studio - 30.10.2021 19:21

Хороший урок! На плюсах вроде рекурсия может работать бесконечно, там этого не подмечалось....

Ответить
Кто-то Что-то
Кто-то Что-то - 26.10.2021 21:53

Не понимаю зачем учить то что еще не нужно учить. Для этого нужно выучить темы которые используются в видео, а не наперед забегать

Ответить
Maxim Myamishev
Maxim Myamishev - 26.10.2021 03:44

Nice lessons, thanks!

Ответить
Павел Андрюков
Павел Андрюков - 10.10.2021 08:33

Домашние задания стали сложными

Ответить
Павел Бойко
Павел Бойко - 06.10.2021 16:33

Спасибо за урок !) Дз полезно , я уверен , что оно очень помогает в понимании темы. Даже если сделать не получилось , то мозг напрягается ( на разборе д/з всё становится понятно). Урок длинный + еще отсылок на другие видео мноооогоооо (много инфоормациии с этой рекурсией аааа)

Ответить
Василий Черновол
Василий Черновол - 23.09.2021 12:14

На всё интересно. Так держать, лучший учитель

Ответить