【发布时间】:2013-11-30 02:19:05
【问题描述】:
这是我的作业中的问题。
使用 PHP,实现一个函数,递归计算给定数低于 100 的阶乘。如果传递的值超过 100,该函数应返回 0
这是我的答案
<?php
function factorial($number)
{
if ($number >= 100) {
return 0;
}
return $number * factorial($number - 1);
}
print factorial(11);
?>
但是当我运行代码时出现致命错误:
致命错误:第 20 行 C:\xampp\htdocs\PhpProject1\index.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 65488 字节)
这是第 20 行 return $number * factorial($number - 1);
我认为我遇到的问题是无限循环:(
我无法结束这个循环
【问题讨论】:
-
每次迭代都会减一,但是什么时候应该停止呢?当
$number为 1 时? 0?目前它永远不会停止,继续朝着负无穷大。