递归方式转迭代方式
Posted longfeiphp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归方式转迭代方式相关的知识,希望对你有一定的参考价值。
通过对斐波那契数列和阶乘把递归转循环(是不是所有递归都可以转为循环?)
/*斐波那契数列*/ static function getN($n) { if ($n<=0) return 0; if ($n<=2) return 1; /*递归法*/ return static::getN($n-1) + static::getN($n-2); /*循环法*/ $a1 = 1; $a2 = 1; $a3 = 2; for ($i=3;$i<=$n;$i++){ $a3 = $a1 + $a2; $a1 = $a2; $a2 = $a3; } return $a3; } /*阶乘*/ static function squre($n) { if ($n<=1) return 1;/*递归法*/ return $n * static::squre($n-1); /*循环法*/ $int = 1; $res = 1; for ($i=2;$i<=$n;$i++){ $res = $i * $int; $int = $res; } return $res; }
以上是关于递归方式转迭代方式的主要内容,如果未能解决你的问题,请参考以下文章