PHP实现阶乘的原理与代码分析

来源:互联网 发布:foxmail邮件导入到mac 编辑:程序博客网 时间:2024/06/05 22:37

/* * 循环算法 * 逻辑: *      1,定义阶乘结束为$n *      2,定义阶乘初始值为1 *      3,循环,结束为当前的循环次数小于$n次,并且开始值为2 *      4,循环中将初始值乘以每次循环的次数 *          (1*2*3*4*5) *          第一次循环结果为3,乘以下次循环的3,乘以下下次循环的4,直至结束 */$n = 5;$result = 1;for($i=2;$i<=$n;$i++){    $result *= $i;}echo $result;

/* * 阶乘递归算法 * 逻辑: *      1,定义需要的第N次阶乘 *      2,定义一个递归函数并将值传输进去 *      3,判断如果值为0,则return 'error'; *      4,此递归的退出条件是,当第N次循环等于1的时候将往上层层退出;、 *      5,递归调用,传输的值为当前的N次阶乘减一,乘以当前的阶乘次 *      层层往下调 *      (5*4*3*2*1) *      当值为1的时候开始层层往上返,每次的返回值都是乘以后的值, *      (1*2*3*4*5) */
function recursion($n){    if($n<0)    {        return 'error';    }else{        if($n === 1)        {            return 1;        }        return recursion($n - 1)*$n;    }}
$res = recursio(5);


原创粉丝点击