【问题标题】:How does return work in recursive?return 如何以递归方式工作?
【发布时间】:2013-01-25 15:10:09
【问题描述】:

我们可以说当$number <2 不会再次调用factirial() 函数吗?或者它调用 factorial() 函数,但它总是将 factorial 设置为 factorial(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)

【问题讨论】:

  • 如果$number $number > 2时才会进入递归状态。
  • 为什么它不总是返回 1,因为对于任何数字它都是 $number&lt;2
  • @BenM $number &gt;= 2 时会调用自己(小错字)
  • 是的,谢谢!
  • 递归确实会占用更多内存。如果你输入一个像 10000 这样的大数字,你的函数可能会导致 PHP 死掉。

标签: php recursion return


【解决方案1】:

我们可以说当 $number

是的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2013-07-10
    • 2022-11-26
    • 1970-01-01
    相关资源
    最近更新 更多