这是我在作业中的问题。
使用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);
我认为我遇到的问题是无限循环:(
我无法结束这个循环
答案 0 :(得分:1)
试试这个:
function factorial($number)
{
if ($number >= 100) {
return 0;
}
if($number<= 1){
return 1;
}
return $number * factorial($number - 1);
}
答案 1 :(得分:1)
试试这种方式。
<?
function factorial($number)
{
if ($number >= 100) {
return 0;
}
elseif($number<= 1){
return 1;
}
else{/* do nothing */ return $number * factorial($number - 1); }
}
print factorial(11);
?>