Рекурсия простым языком. Рекурсия на примерах в PHP, Delphi



Опять же добрый вечер, дорогие читатели. Сегодня поговорим о жестоком, и пугающем всех начинающих, и даже многих не начинающих программистов слове «Рекурсия», и его конкретном применении на практике.
Не знаю почему, но реальной бытовой деятельности программисты привыкли просто обходить рекурсию стороной, заменяя всевозможными циклами и тому подобными средствами.
На самом деле, по моему, это не совсем правильно, и не стоит бояться сложностей с использованием данного метода.
Рекурсия — это использование процедуры или функции (чем бы это ни было) себя самой. Тоесть, в процессе выполнения, исполняемый блок вызывает сам себя.
Понятно что не следует выучив определение пытаться внедрять данный метод везде, где надо и ненадо, его требуется использовать только там где это удобно, дабы не создавать громоздких конструкций теряя память и другие ресурсы.
В своей жизни, на практике, с рекурсией я встречался всего несколько раз, которые убедили меня, в том что это совершенно не сложно, если только задуматься.
В пример приведу многим наверное известную задачу: «Найти факториал числа n», которая прекрасно решается как с помощью рекурсии так и с помощью циклов.
В языке PHP, так же можно использовать рекурсивные алогоритмы, так же как и во многих других языках программирования без особого затруднения. Ниже я приведу примеры для двух сред разработки, именно PHP и Delphi(Pascal), с которыми я уже сталкивался сам.
Пример #1. Вычисление факториала числа в PHP, с помощью рекурсии:
function factorial($n)
{  // Задаём функцию и используемые ей параметры
if(!$n)
{
return(‘Факториал числа ‘.$n.’ не существует.’);
}
else
{
if($n <= 1){ return 1; } // Если $n < или = 1, возвращаем 1 в ответ.
return $n * factorial($n-1); // Повторно производим вызов функции
}
}
echo factorial(5);  // Запрашиваем факториал числа 5

Всё работает icon smile Рекурсия простым языком. Рекурсия на примерах в PHP, Delphi можете проверить. Ответ 120.

Пример #2. Вычисление факториала числа в PHP, с помощью цикла:
function factorial($n)
{
if(!$n)
{
return(‘Факториал числа ‘.$n.’ не существует.’);
}
else
{
$otvet= 1;
for($i=1; $i <= $n; $i++)
{
$otvet *= $i;  // Сам цикл
}
return $otvet;  // Вывод ответа
}
}
echo factorial(5); // Запрашиваем факториал числа 5

Результат аналогичный.

Пример #3. Вычисление факториала числа в Delphi(Pascal), с помощью рекурсии:
function fact(n:integer):integer;
begin
if (n < 1) then result := 0
else if (n = 1) then result := 1
else result := n * fact(n — 1);
end;

Как использовать думаю догадаетесь icon smile Рекурсия простым языком. Рекурсия на примерах в PHP, Delphi

Пример #4. Вычисление факториала числа в Delphi(Pascal), циклическим способом:
function fact(n:integer):integer;
begin var i :integer;
if (n < 1) then result := 0
else begin
result := 1;
for i := 1 to n do
result := result * i;
end;
end;
Теги:
Рекурсия
Добавлено: 22 Сентября 2013 11:59:57 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...