重新写条件语句和分状态对待。其实也可以用elisp来重写:
(defun factorial (n)
(if (zerop n)
1
(* n (factorial (1- n)))))
不过无法处理负数。
我用lua这样写:
function fact (n)
if n== 0 then
return 1
elseif n < 0
return n * fact ( - n -1)
else
return n * fact ( n -1 )
end
end
print(fact( -3))
output: -6
-6
因此我觉得可以针对这个数是>0 还是 < 0 写 两个相似的func,在 n < 0 只需要在 fact ( - n -1)就可以了。
Good luck to you.
愿世界“傻人傻劲”再多一些.
博主,问第一节 阶乘输入负数直接 提示一大串代码 所依答案怎么写
第116页第一个例子,最后一行输出应该为
Lua is great, isn't it? 2
书本上少了一个2
81页12行有误
if op == "+" the
应为if open == "+" then
继续纠错二:28.5示例中,参数个数narg在28.6没看到累加
实例28.3有误,不存在colorname变量,应该是name变量,colorname和name变量应该是同一个