【发布时间】:2020-10-22 00:39:40
【问题描述】:
我目前正在学习递归,这很难理解。我找到了一个非常常见的例子:
function factorial(N)
local Value
if N == 0 then
Value = 1
else
Value = N * factorial(N - 1)
end
return Value
end
print(factorial(3))
N == 0 是基本情况。但是当我将其更改为N == 1 时,结果仍然保持不变。 (它将打印 6).
使用基本情况重要吗? (它会坏掉还是什么?)
使用N == 0(基本情况)和N == 1有什么区别?
【问题讨论】:
-
如果将基本情况更改为
N == 1,那么factorial(0)将导致无限循环。在每个递归函数中都必须是基本情况。所以递归“知道”什么时候停止。你有一个example 阶乘函数如何解析 N = 4。 -
很好的解释和例子,谢谢