factrl.pas
来自「Delphi Pascal 数据挖掘领域算法包 数值算法大全」· PAS 代码 · 共 27 行
PAS
27 行
FUNCTION factrl(n: integer): real;
(* Programs using routing FACTRL must declare the variables
VAR
glntop: integer;
gla: ARRAY [1..33] OF real;
and initialize the values
glntop := 0;
gla[1] := 1.0;
in the main routine. *)
VAR
j: integer;
BEGIN
IF (n < 0) THEN BEGIN
writeln('pause in FACTRL - negative factorial'); readln END
ELSE IF (n <= glntop) THEN BEGIN
factrl := gla[n+1] END
ELSE IF (n <= 32) THEN BEGIN
FOR j := glntop+1 TO n DO BEGIN
gla[j+1] := j*gla[j]
END;
glntop := n;
factrl := gla[n+1]
END ELSE BEGIN
factrl := exp(gammln(n+1.0))
END
END;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?