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 + -
显示快捷键?