Оглавление Вычисление факториала (рекурсия и без рекурсии)


Задача.

Вычисляем факториал, используя рекурсивную функцию.
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.
Rambler's Top100
Hosted by uCoz