JS递归

来源:互联网 发布:电子视频制作软件 编辑:程序博客网 时间:2024/05/17 18:04

JS递归


所谓递归,就是在函数内部又去调用自己

例如,求阶乘问题,在fact函数内部又去调用fact函数了。

<scripttype="text/javascript">
    /*
    * 计算n的阶乘
    * */
    function fact(n){
        if(1 == n){
            return 1;
        }
        return n*fact(n-1);
    }
    alert(fact(5));
</script>

递归算法如果按照常规思路去理解是非常复杂的,函数调用是一层一层嵌套调用,然后一层一层返回。不妨换个思路去理解递归。


递归实际上就是将规模为n的问题降阶为n-1的问题进行求解。也就是去找n和n-1之间的关系,这道题也就解决了。