这是我作业中的问题。
使用PHP,实现一个函数,该函数递归地计算低于100的给定数字的阶乘。如果传递的值超过100 ,该函数应该返回0
这是我的答案
<?php
function factorial($number)
{
if ($number >= 100) {
return 0;
}
return $number * factorial($number - 1);
}
print factorial(11);
?>
但是问题是,当我运行代码时,我有致命错误:
致命错误:第20行C:\examplep\htdocs\PhpProject1\index.php中允许的内存大小134217728字节已用完(试图分配65488字节)
这是20号线return $number * factorial($number - 1);
我认为我的问题是无限循环:(
我不能结束这个循环
试试这个:
function factorial($number)
{
if ($number >= 100) {
return 0;
}
if($number<= 1){
return 1;
}
return $number * factorial($number - 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);
?>