递归 例题

函数自己调自己,就是一个递归

从外往里拆,在返回从里往外合


公园里有200个桃子,猴子每天吃掉10个,挑出两个坏的扔掉,问6天后剩余桃子的数量
<script type="text/javascript">
var sl=200;
for(var i=0;i<6;i++)
{
       sl =sl-12;
}
alert(sl);
公园里有一堆桃子,猴子每天吃掉一般,挑出一个坏的扔掉,第6天的时候发现还剩一个桃子,问原来有多少个桃子
var sl=1;
前一天的数量=(当前天的数量+1)*2;
for(var i=0;i<6;i++)
{
        sl =(sl+1)*2;
}
alert(sl);
递归,使用函数求
函数功能:返回第几天的桃子数量
function liang(n)
{
当n等于6桃子数量为1
if(n==6)
{
        sl=1;
}
else
求当天的数量
当天的数量=(下一天的数量+1)*2
{
       sl = (liang(n+1)+1)*2;
}
       return sl;返回当天的数量
}

alert (liang(0));
如何运算的
liang(0)
{          从上往下拆                    从下往上返
           sl=(liang(1)+1)*2; 卡住 sl=(94+1)*2;
}
liang(1)
{
           sl=(liang(2)+1)*2; 卡住 sl=(46+1)*2;
}
liang(2)
{
           sl=(liang(3)+1)*2; 卡住 sl=(22+1)*2;
}
liang(3)
{
           sl=(liang(4)+1)*2; 卡住 sl=(10+1)*2;
}
liang(4)
{
           sl=(liang(5)+1)*2; 卡住 sl=(4+1)*2;
}
liang(5)
{
           sl=(liang(6)+1)*2; 卡住 sl=(1+1)*2;
}
liang(6)
{
          return 1;
}


posted @ 2016-11-08 14:39  欧元  阅读(230)  评论(0编辑  收藏  举报