代码:#include #include using namespace std; int main() { int N,i,mod5,d5,count0=0; scanf("%d",&N); for (i=1;i=1000 THEN PR "请输入不大于999的数! STOPMAKE "PRECISION 6;计算显示位数设定为六位MAKE "A ARRAY 860;定义数组空间0-859组ASET :A 1 1;乘法数组第1空间赋值为1FOR "I 2 859[ASET :A :I 0] ;其他数组空间赋值为0FOR "I 1 :N [JC :I];调用阶乘过程MAKE "K 0;数组空间是0的标记MAKE "Z 0;总共有多少组数字的标记MAKE "WS 0;累加总共有多少位的计数器TYPE :N TYPE[!=];从高位到低位显示计算结果FOR "M 1 859[XXS 860-:M]PR[ ] TYPE[这是一个]TYPE :WS TYPE[位数]PR[]ENDTO JC :I;计算阶乘的过程FOR "J 1 858[CF :I :J] ;对所有数组空间逐一计算乘法FOR "J 1 858[CLJW :J];处理乘法过程中的进位ENDTO CF :I :J ;计算乘法的过程MAKE "ZJ AGET :A :JMAKE "ZJ :ZJ * :I;I是阶乘中需要累乘的数ASET :A :J :ZJENDTO CLJW :J;处理进位的过程MAKE "X AGET :A :JIF :X1 THEN MAKE "WS :WS+3;累计数值的总位数IF :NN n 0) (* (factorial (- n 1)) n)) ((= n 0) 1) (t (error "N is smaller than 0.")))) 注意:因为百度不提供任何Lisp语言的代码框,此处使用的是Python的代码框,所以关键字可能无法高亮显示Python 语言在 Python 中, 同样可以使用这种简洁方式实现阶乘的计算:def factorial(n) if(n int main() { int n, x; for(n = x = 1; n using namespace std; long long f(int n) { long long e=1; if(n>0) e