递归法解析及应用(杀毒软件怎么遍历文件)

//公园里有200个桃子,猴子每天吃掉一半,扔掉一个烂的,第6天剩余多少。
1
var a=200; 2 for(var i=1;i<7;i++){ 3 a=parseInt(a/2)-1; 4 } 5 alert(a);
//公园里有一堆桃子,猴子每天吃掉一半,扔掉一个烂的,第6天剩余1个,一共有多少桃子。
1
var a=1; 2 for(i=1;i<7;i++){ 3 a=(a+1)*2; 4 } 5 alert(a);

//递归法
//当天数量=(下一天+1)*2
//函数明确:给出天数,输出该天剩余的桃子数量

1 function shuLiang(ts){
2     if(ts==6){
3         return 1;
4     }
5     return (shuLiang(ts+1)+1)*2;
6 }
7 alert(shuLiang(1));
 分析递归法运行过程:

1
//第一次执行 2 function shuLiang(1){ 3 return (shuLiang(1+1)+1)*2; //卡住 4 } 5 //第二次执行 6 function shuLiang(2){ 7 return (shuLiang(2+1)+1)*2; //卡住 8 } 9 //第三次执行 10 function shuLiang(3){ 11 return (shuLiang(3+1)+1)*2; //卡住 12 } 13 //第四次执行 14 function shuLiang(4){ 15 return (shuLiang(4+1)+1)*2; //卡住 16 } 17 //第五次执行 18 function shuLiang(5){ 19 return (shuLiang(5+1)+1)*2; //卡住 20 } 21 //第六次执行 22 function shuLiang(6){ 23 if(6==6){ 24 return 1; 25 } 26 } 27 //此时上面shuLiang(5+1)即是1,便执行第五次,alert4;执行第四次,alert10;执行第三次,alert22;执行第二次,alert46;执行第一次,alert94。

应用举例:杀毒软件怎么扫描全部文件,采用递归法

给一个文件夹,求该文件夹下所有文件数量
函数功能明确:给一个文件夹,返回该文件夹下文件的数量


function shuLiang(文件夹路径){
     var sum=0;
     打开文件夹遍历所有文件
     if(是文件){
     sum++;
    }else{
          sum=sum+shuLiang(文件夹路径)
    }
    return sum;
}

posted on 2017-06-18 10:37  为伊消得  阅读(247)  评论(0编辑  收藏  举报