加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP递归与迭代

发布时间:2020-12-13 18:00:13 所属栏目:PHP教程 来源:网络整理
导读:在 PHP 中,我们经常会遇到这样的情况:在面临一个庞大的问题时,需要把这个庞大的问题拆分成各个细小的单元,解决了每个细小单元的问题,这个庞大的问题便迎刃而解了。递归与迭代就是这种思想的体现。 PHP 递归 递归就是程序调用自身、函数不断引用自身,直
在 PHP 中,我们经常会遇到这样的情况:在面临一个庞大的问题时,需要把这个庞大的问题拆分成各个细小的单元,解决了每个细小单元的问题,这个庞大的问题便迎刃而解了。递归与迭代就是这种思想的体现。

PHP 递归

递归就是程序调用自身、函数不断引用自身,直到引用的对象已知。构成递归需满足以下两个条件:
  • 子问题需与原始问题为同样的事,且更为简单。
  • 不能无限制地调用本身,必须有一个出口,化简为非递归状况处理。

例如,斐波那契数列:1,1,2,3,5,8……

斐波那契数列的特点是第 0 位(在计算机中习惯以 0 开始计数)和第 1 位的数字都是 1,从第 2 位开始,当前数字的值是前两位数值之和,可以用如下的公式表示:

f(0)=1
f(1)=1
f(n)=f(n-1)+f(n-2){n>1}


用 PHP 实现递归求斐波那契数列的代码如下:
<?php
function readd($n){
    if($n>2){
        $arr[$n] = readd($n-2) + readd($n-1);  // 递归调用自身
        return $arr[$n];
    } else {
        return 1;
    }
}
echo readd(30);
?>
readd() 函数封装了求斐波那契数列的方法,向函数中传递不同的数字将会求出对应位置的数列的值。

PHP 迭代

迭代就是利用变量的原值推算出变量的一个新值。下面用一个简单的例子说明迭代:
<?php
function diedai($n){
    for ($i=0,$j=0; $i < $n; $i++) {
        $j = $j + $i;
    }
    return $j;
}
echo diedai(4);
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读