php递归实现阶乘

递归实现阶乘的原理
阶乘的定义是对于一个非负整数 n,其阶乘是所有小于及等于 n 的正整数的积。递归是一种通过函数调用自身来解决问题的方法。递归实现阶乘的核心思想是将问题分解为更小的子问题,直到达到基本情况(通常为 n = 0 或 n = 1)。
递归终止条件
递归必须有一个明确的终止条件,否则会导致无限递归。对于阶乘问题,终止条件是当 n 为 0 或 1 时,直接返回 1,因为 0! 和 1! 的值均为 1。
PHP 递归实现阶乘的代码
function factorial($n) {
if ($n <= 1) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
代码解析
- 函数
factorial接收一个参数$n,表示要计算阶乘的数。 - 如果
$n小于或等于 1,函数返回 1,这是递归的终止条件。 - 否则,函数返回
$n乘以factorial($n - 1)的结果,即通过递归调用逐步分解问题。
示例调用
echo factorial(5); // 输出 120
注意事项
- 递归虽然简洁,但对于较大的
$n可能会导致栈溢出或性能问题。 - PHP 默认的递归深度限制是 100,可以通过修改
ini配置调整,但需谨慎。






