zoukankan      html  css  js  c++  java
  • 递归实例分析

    1、公园里面有200个桃子,每天吃掉一半,扔掉一个烂的,第六天剩余多少个桃子?

    var sl=200;i=0;
    for(i=0;i<6;i++){
        sl=parseInt(sl/2-1);
        }
        alert(sl);

    2、公园里有一堆桃子,猴子每天吃掉一半,扔掉一个烂的,第六天剩余1个桃子,问刚开始有多少个桃子

    var sl=1;i=0;
    for(i=0;i<6;i++){
        sl=(sl+1)*2;
        }
    alert(sl);

    递归:特点:自己调用自己

    function shuLiang(ts){
        if(ts==6){
            return 1;
            }
        return (shuLiang(ts+1)+1)*2;
        }
    alert(shuLiang(0));

    分析:1、当天的剩余量=(下一天的剩余量+1)*2

    2、设定的函数shuLiang(ts)表示给定一个天数,返回该天的剩余数量

    3、开始循环:首先当ts=0;执行 return (shuLiang(0+1)+1)*2;由于不知ts=1时剩余数量继续循环

                      ts=1;执行 return (shuLiang(1+1)+1)*2;继续循环

                      ts=2;执行 return (shuLiang(2+1)+1)*2;继续循环

                      ts=3;执行 return (shuLiang(3+1)+1)*2;继续循环

                      ts=4;执行 return (shuLiang(4+1)+1)*2;继续循环

                      ts=5;执行 return (shuLiang(5+1)+1)*2;继续循环

                      ts=6;执行 if(ts==6){ return 1;};已知ts=6时剩余数量,将1返回给ts=5;执行return (shuLiang(5+1)+1)*2;

                     求得shuLiang(5);将shuLiang(5)的值返回给ts=4,执行return (shuLiang(4+1)+1)*2;

                     求得shuLiang(4);将shuLiang(4)的值返回给ts=3,执行return (shuLiang(3+1)+1)*2; 

                     求得shuLiang(3);将shuLiang(3)的值返回给ts=2,执行return (shuLiang(2+1)+1)*2;

                     求得shuLiang(2);将shuLiang(2)的值返回给ts=1,执行return (shuLiang(1+1)+1)*2;

                     求得shuLiang(1);将shuLiang(1)的值返回给ts=0,执行return (shuLiang(0+1)+1)*2;

                     求得shuLiang(0);将shuLiang(0)的值交给alert(shuLiang(0))结束循环

  • 相关阅读:
    《信息安全系统设计基础》实验中的问题总结
    20145233计算机病毒实践7之动态分析3
    20145233计算机病毒实践3之静态分析3
    20145233计算机病毒实践5之动静态分析
    20145233计算机病毒实践2之静态分析
    20145233计算机病毒实践1之静态工具介绍
    20145233计算机病毒实践十
    20145233计算机病毒实践九之IDA的使用
    20145233韩昊辰小组 课程设计中期检查
    20145233《网络对抗》Exp9 Web安全基础实践
  • 原文地址:https://www.cnblogs.com/NCL--/p/7043697.html
Copyright © 2011-2022 走看看