2013-02-10 56 views
0

我們可以說當$number <2它不再調用factirial()函數嗎?或者它調用階乘()函數,但它始終將階乘設置爲階乘(1)。如果是這樣,我認爲遞歸使用更多的內存。我對麼?如何返回遞歸工作?

<?php function factorial($number){ 

       if ($number < 2) { 
       return 1; 
       } else { 
       return ($number * factorial($number-1)); 
       } 
      } 

echo factorial(5); 
?> 

這是我猜的功能

3*factorial(2) 
2*factorial(1) 
1*factorial(1) 
1*factorial(1) 
+1

如果'$ number' <2,函數返回,而不是再次調用。只有'$ number'> 2時纔會輸入遞歸狀態。 – BenM 2013-02-10 09:58:29

+0

爲什麼它總是回退1,因爲對於任何數字來說它都是'$ number <2' – newday 2013-02-10 10:02:13

+0

@BenM當'$ number> = 2'(小錯字) – Supericy 2013-02-10 10:48:10

回答

1

,我們可以說,在$數量< 2就不會再次調用factirial()函數?