码迷,mamicode.com
首页 > 其他好文 > 详细

递归-基础知识总结------彭记(06)

时间:2017-08-12 10:22:09      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:简单   自己   cti   rip   rom   基础知识   mil   console   利用   

递归

 -在程序中,递归就是函数自己直接或者间接调用自己。

 -就递归而言最重要的就是跳出结构,因为跳出了才可以有结果。

化归思想

-将一个问题由难化易,由繁化简 ,由复杂化简单的过程称为化归,它是转化和归结的简称。

-递归思想就是将一个问题转换为一个已解决的问题来实现

-假如有一个函数‘f‘,如果它是递归函数的话,那么也就是说函数体内的问题还是转换为‘f‘的形式。

例如:求1~100的和?

function foo(n){

  return n +foo(n-1);

}

上面就是利用了化归思想:

-将求100 转换为求99

-将求99转换为求98

......

-将求2 转换为求1

-求1结果就是1

function foo(n){

  if(n==1){

  return 1;

  }

  return n+foo(n-1);

}

递归实现汉诺塔

<script>
    var index =1;
    /*每一次移动只能移动一个元素,将这个编号的元素从from和位置移动到to的位置*/
    function move(n,from,to){
        console.log(‘第‘ + (index++) + ‘次,将第‘ + n + ‘个元素从‘ + from + ‘位置移动到‘ + to + ‘位置‘);
    }

    /*将指定数量的元素从from位置,通过temp空位移动到to位置*/
    function hanNouTa(n,from,temp,to){
        if(n == 0){
            return;
        }
        /*先将上面的其它元素全部移到到空位上*/
        hanNouTa(n-1,from,to,temp);
        /*将最后一元素移动到指定的目标位置上*/
        move(n,from,to);
        /*通过空位将刚才的n-1个元素移动到目标位置上*/
        hanNouTa(n-1,temp,from,to);
    }

    hanNouTa(4,‘A‘,‘B‘,‘C‘);
</script>

 

递归-基础知识总结------彭记(06)

标签:简单   自己   cti   rip   rom   基础知识   mil   console   利用   

原文地址:http://www.cnblogs.com/pgm0908/p/7346794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!