购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.7 递归与迭代

我们经常会遇到这样的情况:在面临一个庞大的问题时,需要把这个庞大的问题拆分成各个细小的单元,解决了每个细小单元的问题,这个庞大的问题便迎刃而解了。递归与迭代就是这种思想的体现。

1.递归

递归就是程序调用自身、函数不断引用自身,直到引用的对象已知。构成递归需满足以下两个条件:

例如,斐波那契数列: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()函数封装了求斐波那契数列的方法,向函数中传递不同的数字将会求出对应位置的数列的值。

2.迭代

迭代就是利用变量的原值推算出变量的一个新值。下面用一个简单的例子说明迭代: gqN0aZ7j1gHQt9MfnbErzWhmDNz6a3Vz45KBVdzdzx9o1wv5Oo5ai2uKxWCThJgo

    <?php
    function diedai($n){
           for ($i=0,$j=0; $i < $n; $i++) {
                   $j = $j + $i;
           }
           return $j;
    }
    echo diedai(4);
    ?>
点击中间区域
呼出菜单
上一章
目录
下一章
×