• 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>

  • 相关阅读:
    WebService中Dataset的压缩序列化和解压反序列化(DataSetSurrogate的使用)
    IOleControl 代码一,测试有问题,备忘
    关于Stream和byte之间的转换 .
    webbrowser 实现IOleControl接口2
    JavaScropt获取网页、浏览器、屏幕高度和宽度
    Oracle默认的用户名和密码
    window.showModalDialog()用法及注意事项
    Android1.6开发环境配置
    string与stream互相转换
    GirdView实现单选、FooterTemplate实现新建和PagerTemplate实现分页
  • 原文地址:https://www.cnblogs.com/rose1324/p/7993697.html
Copyright © 2020-2023  润新知