php递归。

WBOY
WBOYOriginal
2016-06-23 14:01:45868browse

刚才网上看了php递归,又问了问大神,告诉我说递归就是调用它本身。没有听明白。又在百度上看了汉诺塔问题。倒是知道汉诺塔是咋回事了,但是还是不明白递归。望牛人们给个简单易懂的例子。。。


回复讨论(解决方案)

function f($n)  {     $out = -1;   if($n<0)       echo "输入不能是负数";   else if($n==0||$n==1)       $out=1;   else $out=f($n-1)*$n;     return $out;}echo f(3);

最经典的例子 阶乘

function f($n)  {     $out = -1;   if($n<0)       echo "输入不能是负数";   else if($n==0||$n==1)       $out=1;   else $out=f($n-1)*$n;     return $out;}echo f(3);

最经典的例子 阶乘 这个好。。。这个看明白了看来还是iq不够

f(3)第一次传给f函数的参数是3 运行到$out=f($n-1)*$n; 时就变了$out=f(3) = f(2)*3;f(2)还没出结果所以就又调用了一次f函数这次是f(2)参数为2 再次运行到$out=f($n-1)*$n;时变成了$out=f(2) = f(1)*2 ;f(1)运行这个函数的时候就运行了else if($n==0||$n==1)这段代码 所以f(1) = 1;知道f(1)的结果了就返回之前的$out=f(2) = f(1)*2 = 1*1 =1 ;$out=f(2) = f(1)*2 = 1*2; $out=f(3) = f(2)*3 = 2*3;结果为6
       

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn