美文网首页
递归问题

递归问题

作者: lifefruity | 来源:发表于2020-12-01 12:47 被阅读0次
<?php 

/*
递归的三大要素

第一要素:明确你这个函数想要干什么
第二要素:寻找递归结束条件
第三要素:找出函数的等价关系式

*/

//1. 阶乘
function test($n){
    if($n == 1){
        return 1;
    }
    return $n * test($n - 1);
}
//echo test(4);


//2. 青蛙跳,一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
function qingwatiao($n){
    //可以优化,很多值被重复计算了  f(8) = f(7) + f(6)    f(7) = f(6) + f(5),这里f(6)被重复计算了,可以保存其阿里
    //这题也可以自底向上算,f(1) => f(2) => f(3) => f(4) => f(5)
    if($n <= 2){
        return $n;
    }
    
    return qingwatiao($n - 1) + qingwatiao($n - 2);
}
echo qingwatiao(15);


//3. 1234变成4321
function test1($str){
    if(strlen($str) <= 1){
        return $str;
    }
    
    $first = substr($str, 0 , 1);
    $left = substr($str, 1);
    return test1($left) . $first;
    
}
//echo test1('1234');


相关文章

  • LeetCode-N Queens

    N皇后问题。经典回溯问题: 以下是递归及非递归的方法:

  • 递归问题

    递归是让我糊涂的问题之一,快变成我的疑难杂症了。 下面我用一到面试题来刺激我吧,以后看到的时候就想优化了 /* *...

  • 递归问题

  • 递归问题

    买汽水 转载地址[https://blog.csdn.net/qq_34399639/article/detail...

  • 第二章 递归和回溯

    递归 递归的含义:任何调用自身的函数称为递归。用递归求解问题要点在于递归函数调用自身取解决一个规模比原始问题小一些...

  • 递归2--表达式求值

    用递归解决递归形式的问题: 表达式的定义是递归的:

  • 前端开发 -- 算法模式(递归和动态规划)

    递归 递归是一种解决问题的方法,它解决问题的各个小部分,直到解决最初的大问题,递归通常涉及到函数的自身调用。递归函...

  • 动态规划&贪心算法

    动态规划问题,问题可以分为子问题的最优解,从而递归下去。也可以自下而上的循环来解决,就是找到递归的终点,从递归的终...

  • 递归算法介绍及Java应用实战

    什么是递归算法 递归算法是把问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或过程)来表示问题的解。一个...

  • 递归

    什么是递归? 递归是指把大问题化成小而相似的问题,然后小问题变化为更小的问题,直到能很容易解决。 递归必要条件 1...

网友评论

      本文标题:递归问题

      本文链接:https://www.haomeiwen.com/subject/lgqswktx.html