Hola, te doy 2 versiones, una recursiva y otra iterativa.
function factorial_recursivo( numero:longint ) : longint;
begin
if numero = 1 then factorial_recursivo := 1
else factorial_recursivo := factorial_recursivo(numero-1) * numero
end;
function factorial_iterativo( numero:longint ) : longint;
var
i,factorial:longint;
begin
factorial := 1;
for i:= 1 to numero do factorial := factorial*i;
factorial_iterativo := factorial;
end;
les pongo tipo longint porque tienden a crecer muy rapido los factoriales. Espero que te sirva. Por cierto, te recomiendo la iterativa, utiliza menos recursos.
Comments
Hola, te doy 2 versiones, una recursiva y otra iterativa.
function factorial_recursivo( numero:longint ) : longint;
begin
if numero = 1 then factorial_recursivo := 1
else factorial_recursivo := factorial_recursivo(numero-1) * numero
end;
function factorial_iterativo( numero:longint ) : longint;
var
i,factorial:longint;
begin
factorial := 1;
for i:= 1 to numero do factorial := factorial*i;
factorial_iterativo := factorial;
end;
les pongo tipo longint porque tienden a crecer muy rapido los factoriales. Espero que te sirva. Por cierto, te recomiendo la iterativa, utiliza menos recursos.