zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    Eclipse编辑JS响应慢,复制粘贴卡顿的解决方案
    Oracle 通过字段名查询其所在的表
    spring mvc流转控制说明
    Iterable(迭代器)的用法
    spring事务配置详解
    创建第一个Hiberntae工程
    spring3.0注解
    Ext中Grid重新load设置URL
    spring框架设计理念(上)
    Eclipse快捷键大全
  • 原文地址:https://www.cnblogs.com/rose1324/p/7993697.html
Copyright © 2011-2022 走看看