简单理解递归小知识

关于递归的理解小分析

<?php

/ *
递归(阶乘算法)=>流程
    1!  1 
    2!  2 * 1
    3!  3 * (2 * 1)
    4!  4 * (3 * (2 * 1))
    …………

    递归就是: 以自然数 n 乘以 (n -1) 的阶乘. => n! = n * (n -1)!

    比如:
        从最小的阶乘开始, 即 2 * 1 (假设 n = 2)
        设 R 表示为阶乘  则   

            R(2) = 2 * 1R(3) = 3 * (2 * 1)=>  R(3) = 3 * R(2);
            ……
            
            R(n) = n * ((n -1) * (n - 2) * (n -3) * …… * 2 * 1);
        =>  R(n) = n * R(n -1); (n >= 1=> 数学规定: 0= 1;
                所以 要加判断  当$num = 1 / 0 的时候 要输出 1 .

    总结: 递归就是:以自然数 n 乘以 (n -1) 的阶乘. => R(n) = n * R(n -1);

    下面为示例代码。
*/

function recursive(int $num): int
{
    // 判断条件不能放在return后面!  因为return之后的代码不执行!(在函数 / 方法 体内)
    if ($num == 1 || $num == 0) {
        return 1;
    }

    return $num * recursive($num - 1);
}

echo recursive(5);  // => 120

其实递归最简单的理解就是:找到跳出递归的条件就行了!!!(一般为到1就跳。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值