Вычисление факториала (рекурсия и без рекурсии)
Задача.
Вычисляем факториал, используя рекурсивную функцию.
function Fact(N:byte):LongInt;
begin if N<2 then Fact:=1
else Fact := N*Fact(N-1);
end;
var m: byte; k:longint;
begin
write('Вычислю факториал от: '); readln(m);
write('Factorial( ',m,' ) = ',Fact(m));
readln;
end.
----- Результаты: ------
Вычислю факториал от: 3
Factorial( 3 ) = 6
Вычислю факториал от: 5
Factorial( 5 ) = 120
---- Вычисление факториала без рекурсии ------
function Fact2(N:byte):LongInt;
var kk,nn: LongInt;
begin nn:=1;
for kk:=1 to N do
nn := nn*kk;
fact2 := nn;
end;
var m: Byte;
begin
write('--> '); readln(m);
writeln(m:4, fact2(m):8);
readln;
end.