创建函数的致命错误,在PHP中递归计算阶乘?

时间:2013-11-30 02:19:06

标签: php recursion

这是我在作业中的问题。

使用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);

我认为我遇到的问题是无限循环:(

我无法结束这个循环

2 个答案:

答案 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); 


 ?>