其他分享
首页 > 其他分享> > 斐波那契数列的递归实现以及优化

斐波那契数列的递归实现以及优化

作者:互联网

<?php
// 优化前
function fb($len) {
    if ($len < 3) return 1;
    return fb($len - 2) + fb($len-1);
}

// 优化以后
function fb($len) {
    static $cache = [];
    if ($len < 3) return 1;
    if (key_exists($len, $cache)) {
        return $cache[$len];
    } else {
        $fb =  fb($len - 2) + fb($len-1);
        $cache[$len] = $fb;
        return $fb;
    }
}

  主要原因:在递归调用时出现了大量的重复计算,故可以将单次递归结果保存在一个变量中,每次递归时查询是否存在,存在即返回

标签:存在,数列,递归,斐波,那契,单次
来源: https://www.cnblogs.com/jasonyou/p/13594197.html