Delphi. Pascal
Урок 13. Рекурсивные функции
Функция может вызывать саму себя. Ниже приведен классический пример такой функции - она подсчитывает факториал числа (факториал целого положительного числа n - это произведение всех целых от 1 до n. Факториал обозначается восклицательным знаком. Например, 5!=1*2*3*4*5=120).
//Объявление функции.
function fact(X: Integer): Integer;
begin
if X>1 then
//Функция fact вызывает саму себя.
fact:=X*fact(X-1)
else
fact:=1;
end;
var
r: Integer;
begin
//Вызов функции.
r:=fact(4);
Writeln(r);
Readln;
end.
Тут мы смогли вызвать функцию из самой себя, так как имеет место формула n!=n*(n-1)!.
Указанный фрагмент выведет, разумеется, 24.