黑马程序员技术交流社区

标题: JAVA递归算法基础--汉诺塔-- [打印本页]

作者: 八宝    时间: 2015-12-10 18:21
标题: JAVA递归算法基础--汉诺塔--
  1. public class hanoi {
  2.         static long i=0;

  3.         public static void main(String[] args) {
  4.                 moveHanoi(5,"A","B","C");
  5.                 System.out.println(i);
  6.         }
  7.         public static void moveHanoi(int num,String sta,String pro,String end)
  8.         {
  9.                 if(num==1) //递归的出口。
  10.                 {
  11.                         i++; //计算次数
  12.                         System.out.println(sta+">>"+end);
  13.                 }
  14.                 if(num>1) //递归的入口
  15.                 {
  16.                         moveHanoi(num-1,sta,end,pro);
  17.                         moveHanoi(1,sta,null,end);
  18.                         moveHanoi(num-1,pro,sta,end);
  19.                 }
  20.         }

  21. }
复制代码

作者: Myth、骞    时间: 2015-12-10 18:57
不看答案-。-我自己就编不出来,我觉得。。
作者: 八宝    时间: 2015-12-11 20:14
Myth、骞 发表于 2015-12-10 18:57
不看答案-。-我自己就编不出来,我觉得。。

递归不知道什么时候用,就是有时候知道要用递归了不知道怎么往递归的上面找思路,这点比较不好理解,前天看到有个人发的递归解决螺旋矩阵的就比较佩服。我自己绝对想不起来的。螺旋矩阵到现在还是一头雾水
作者: 八宝    时间: 2015-12-11 20:15
我觉得递归最好把能变化的参数都设计到参数列表里去,这样比较好想具体的思路




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