递归样式与解读

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
</body>
</html>
<script type="text/javascript">



//公园里有一堆桃子,猴子每天吃掉一半,挑出一个坏的扔掉,第6天的时候发现还剩1个桃子,问原来有多少个桃子

//函数功能 返回第n天的桃子数量
//递归就是函数自己调自己
var sl;
function ShuLiang(n)
{
    if(n==6)
    {
        sl = 1;    
    }
    else
    {
    //求当天的数量
    //当天的数量 = (下一天的数量+1)*2;
    
    sl = (ShuLiang(n+1)+1)*2;
    }
    return sl;
}
    alert(ShuLiang(1));                     //输出(ShuLiang(0)) 结果就是190  当天的数量
                                         //输出(ShuLiang(1))    结果就是94   下一天的数量
/*
    ShuLiang(0)                             ShuLiang(0)就是sl = (94+1)*2 = 190;   
    {
        sl = (ShuLiang(1)+1)*2;    卡主          sl = (94+1)*2
    }
    ShuLiang(1)
    {
        sl = (ShuLiang(2)+1)*2; 卡主         sl = (46+1)*2
    }
    ShuLiang(2)
    {
        sl = (ShuLiang(3)+1)*2; 卡主         sl = (22+1)*2;
    }
    ShuLiang(3)
    {
        sl = (ShuLiang(4)+1)*2; 卡主         sl = (10+1)*2;
    }
    ShuLiang(4)
    {
        sl = (ShuLiang(5)+1)*2; 卡主         sl = (4+1)*2;
    }
    ShuLiang(5)
    {
        sl = (ShuLiang(5)+1)*2; 卡主      sl = (1+1)*2;
    }
    ShuLiang(6)
    {
        return 1;               发现n=6了就返回sl=1 然后往回计算
    }
*/    
    
    
    
</script>

 

posted @ 2017-01-15 13:50  小太白  阅读(294)  评论(0编辑  收藏  举报