2.
Рекурсия. Имитация работы цикла
Мы выяснили, что рекурсия - это повторное выполнение содержащихся команд в подпрограмме. А это в свою очередь аналогично работе цикла. Существуют языки программирования, в которых конструкция цикла отсутствует вовсе, например, Пролог.
Попробуем сымитировать работу цикла for.
Цикл for содержит переменную-счетчик шагов. В рекурсивной подпрограмме такую переменную можно передавать в качестве параметра.
// процедура LoopImitation()
с двумя параметрами
// первый параметр – счетчик шагов, второй параметр – общее количество шагов
static void LoopImitation(int i, int n)
{
Console.WriteLine("Hello N " + i); // оператор, который необходимо повторить при любом значении i
if (i < n) // пока счетчик цикла не станет равным значению n,
{
LoopImitation(i+1, n);
// вызываем новый экземпляр процедуры, с параметром i+1 (переход к следующему значению i)
}
}
Изучите программу, приведенную ниже и оформите в основной программе вызов процедуры с параметрами i = 1, n = 10.Запрещенные операторы: for;while;until
Вставьте недостающие фрагменты кода
C#
1 |
using System;
|
2 |
class Program
|
3 |
{
|
4 |
static void LoopImitation(int i, int n)
|
5 |
{
|
6 |
Console.WriteLine("Hello N " + i);
|
7 |
if (i < n)
|
8 |
{
|
9 |
LoopImitation(i + 1, n);
|
10 |
}
|
11 |
}
|
12 |
static void Main()
|
13 |
{
|
14 |
|
15 |
}
|
16 |
}
|