JavaScript函数-递归

        //递归
        //函数自己调用自己
        function a(){
            a();    
        }
        //有一堆桃,一群猴子每天吃一半,然后扔掉一个坏的,第6天发现只剩下1个桃,问:原来有多少个桃?
        //反过来推:原来的桃子数量= (下一天桃子数量+1)*2,比如第5天桃子数量=(第六天桃子数量1个+扔掉的1个)*2
        //所以该函数功能为用已知天数(n天),求该天(第n天)桃子数量
        function taoZi(n){
            if(n==6){                    //已知第6天为1个桃,所以先把该条件排除出去
                return 1;                 
            }
                // 排除后,第n天桃子数量=(第n+1天的桃子数量+1)*2
                //                           ||    
                //                    求第n天数量用taoZi(n),同理求第n+1天可用taoZi(n+1)              
                return (taoZi(n+1)+1)*2;    
            
        }
        alert(taoZi(0));
/*        
        //当n=0时===>
        //第一步:带入n=0
        function taoZi(0){
            if(n==6){                       //n不等于6,执行下边命令            
                return 1;                 
            }              
                return (taoZi(1)+1)*2;       //里面有个taoZi(1)要计算,
            
        }
        //第二步:求taoZi(1)
        function taoZi(1){
            if(n==6){                       //n不等于6,执行下边命令            
                return 1;                 
            }              
                return (taoZi(2)+1)*2;       //里面有个taoZi(2)要计算
            
        }
        //第三步:求taoZi(2)
        function taoZi(2){
            if(n==6){                       //n不等于6,执行下边命令            
                return 1;                 
            }              
                return (taoZi(3)+1)*2;       //里面有个taoZi(3)要计算
            
        }
        //第四步:求taoZi(3)
        function taoZi(3){
            if(n==6){                       //n不等于6,执行下边命令            
                return 1;                 
            }              
                return (taoZi(4)+1)*2;       //里面有个taoZi(4)要计算
            
        }
        //第五步:求taoZi(4)
        function taoZi(4){
            if(n==6){                       //n不等于6,执行下边命令            
                return 1;                 
            }              
                return (taoZi(5)+1)*2;       //里面有个taoZi(5)要计算
            
        }
        //第二步:求taoZi(5)
        function taoZi(5){
            if(n==6){                       //n不等于6,执行下边命令            
                return 1;                 
            }              
                return (taoZi(6)+1)*2;       //里面有个taoZi(6)要计算
            
        }
        //第六步:求taoZi(6)
        function taoZi(1){
            if(n==6){                       //n等于6,返回  1           
                return 1;                 
            } 
        //最后把1这个值依次往回带入,即得到taoZi(0)             
*/

<script type="text/javascript">    //递归//函数自己调用自己function a(){a();}//有一堆桃,一群猴子每天吃一半,然后扔掉一个坏的,第6天发现只剩下1个桃,问:原来有多少个桃?//反过来推:原来的桃子数量= (下一天桃子数量+1)*2,比如第5天桃子数量=(第六天桃子数量1个+扔掉的1个)*2//所以该函数功能为用已知天数(n天),求该天(第n天)桃子数量function taoZi(n){if(n==6){                    //已知第6天为1个桃,所以先把该条件排除出去return 1;             }// 排除后,第n天桃子数量=(第n+1天的桃子数量+1)*2//                           ||    //                    求第n天数量用taoZi(n),同理求第n+1天可用taoZi(n+1)              return (taoZi(n+1)+1)*2;}alert(taoZi(0));/*//当n=0时===>//第一步:带入n=0function taoZi(0){if(n==6){                       //n不等于6,执行下边命令            return 1;             }              return (taoZi(1)+1)*2;   //里面有个taoZi(1)要计算,}//第二步:求taoZi(1)function taoZi(1){if(n==6){                       //n不等于6,执行下边命令            return 1;             }              return (taoZi(2)+1)*2;   //里面有个taoZi(2)要计算}//第三步:求taoZi(2)function taoZi(2){if(n==6){                       //n不等于6,执行下边命令            return 1;             }              return (taoZi(3)+1)*2;   //里面有个taoZi(3)要计算}//第四步:求taoZi(3)function taoZi(3){if(n==6){                       //n不等于6,执行下边命令            return 1;             }              return (taoZi(4)+1)*2;   //里面有个taoZi(4)要计算}//第五步:求taoZi(4)function taoZi(4){if(n==6){                       //n不等于6,执行下边命令            return 1;             }              return (taoZi(5)+1)*2;   //里面有个taoZi(5)要计算}//第二步:求taoZi(5)function taoZi(5){if(n==6){                       //n不等于6,执行下边命令            return 1;             }              return (taoZi(6)+1)*2;   //里面有个taoZi(6)要计算}//第六步:求taoZi(6)function taoZi(1){if(n==6){                       //n等于6,返回  1           return 1;             } //最后把1这个值依次往回带入,即得到taoZi(0)             */
             </script>

原文地址:https://www.cnblogs.com/rose1324/p/7993697.html