【发布时间】:2014-02-12 08:05:01
【问题描述】:
<?php
function factorial_of_a($n)
{
if($n ==0)
{
return 1;
}
else
{
return $n * factorial_of_a( $n - 1 );
}
}
print_r( factorial_of_a(5) );
?>
我的疑问是:
return $n * factorial_of_a( $n - 1 ) ;
在此语句中 - 当 $n = 5 和 $n - 1 = 4 时,它给出的结果为 20。 但是当我运行它时,答案 120 是怎么来的?嗯,120 是正确的答案......我不明白它是如何工作的。我改用for-loop,它工作正常。
【问题讨论】:
-
又是什么问题?
-
嗯,问题是“我不明白它是如何工作的”
(: -
你在问递归是如何工作的吗?
-
我会回答这个问题,但现在无法回答......这就是我所做的:pastebin.com/JKeNyZAH 递归只是以“循环”方式重新访问命令以有效地返回结果。 (所以重用代码,不必写2次)