2.
Рекурсия. Имитация цикла
Рекурсия как замена цикла
Мы увидели, что рекурсия - это повторное выполнение содержащихся команд в подпрограмме. А это в свою очередь аналогично работе цикла. Существуют языки программирования, в которых конструкция цикла отсутствует вовсе. Например, Пролог.
Попробуем сымитировать работу цикла
for
.
Цикл
for
содержит переменную-счетчик шагов. В рекурсивной подпрограмме такую переменную можно передавать в качестве параметра.
# Процедура LoopImitation() с двумя параметрами
# Первый параметр – счетчик шагов,
# второй параметр – общее количество шагов
def LoopImitation(i, n):
print("Hello N", i) # Оператор, который необходимо выполнять (повторять)
# при любом значении i
if i < n: # Пока счетчик цикла не станет равным значению n,
LoopImitation(i + 1, n) # вызываем еще раз эту же процедуру,
# с параметром i+1 (переход к следующему значению i)
Изучите программу, приведенную ниже и оформите в основной программе вызов процедуры с параметрами
i = 1
,
n = 10
.
Вставьте недостающие фрагменты кода
Python
1 |
def LoopImitation(i, n):
|
2 |
print("Hello N", i)
|
3 |
if i < n:
|
4 |
LoopImitation(i + 1, n)
|
5 |
|