黑马程序员技术交流社区

标题: 递归 [打印本页]

作者: xinchi    时间: 2015-10-1 10:21
标题: 递归
递归的思想是什么?谁能用代码来说明?
作者: Smilexs    时间: 2015-10-1 10:33
就是函数自己调用自己(有直接递归和间接递归之分),同时函数要有出口。汉诺塔Hanoi问题:




  1.         /**
  2.         * 从p1 移动n个盘子到p3,借助p2(大盘不能在小盘的上面)
  3.         * @param n 盘子个数
  4.         * @param p1 第一根棍子
  5.         * @param p2
  6.         * @param p3
  7.         */
  8.         public void hanoi(int n, int p1, int p2, int p3) {
  9.                 if (n == 1) {
  10.                         System.out.println("步骤:" + p1 + "-->" + p3);
  11.                         return;
  12.                 } else {
  13.                         // p1-->p2
  14.                         hanoi(n - 1, p1, p3, p2);
  15.                         System.out.println("步骤:" + p1 + "-->" + p3);
  16.                         hanoi(n - 1, p2, p1, p3);
  17.                 }
  18.         }
复制代码









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2