Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csPmFnRc 175 of 436 menu
◀ ▶

Рекурсия функции в C#

В программировании есть такое понятие, как рекурсия - это когда функция вызывает сама себя. Чтобы цепочка вызовов когда-нибудь закончилась, нужен базовый случай: в нем новый вызов уже не делается.

Без базового случая получится бесконечная цепочка вызовов. Поэтому в рекурсивной функции сначала проверяют простое условие остановки, и только иначе вызывают себя с более простым аргументом.

Выведем с помощью рекурсии числа от 1 до 10. Базовый случай - когда текущее число больше 10:

void PrintRange(int num) { if (num > 10) { return; } Console.WriteLine(num); PrintRange(num + 1); } PrintRange(1);

Каждый вызов печатает свое число и передает в следующий вызов значение на 1 больше. Когда num станет 11, срабатывает базовый случай и цепочка останавливается.

Запишем функцию Fact для факториала небольших натуральных чисел. Для 0 и 1 сразу вернем 1, иначе умножим num на факториал num - 1:

int Fact(int num) { if (num <= 1) { return 1; } return num * Fact(num - 1); } Console.WriteLine(Fact(5));

Так же можно сложить числа от 1 до n. Базовый случай - 0, тогда сумма пустая. Иначе к num прибавляют сумму до num - 1:

int SumTo(int num) { if (num <= 0) { return 0; } return num + SumTo(num - 1); } Console.WriteLine(SumTo(5));

С помощью рекурсии выведите числа от 1 до 5 в консоль, по одному на строку.

С помощью рекурсии найдите сумму чисел от 1 до 10 и выведите ее.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить