玩转汉诺塔

public class THanoi {

      public static void main(String[] args) {
            hanoi(5,'A','B','C');  //可以理解为5个圈或者第5关
        }
        
        /**
         * @param n     共有N个圈
         * @param A     开始的柱子
         * @param B     中间的柱子
         * @param C     目标的柱子
         * 无论有多少个圈,都认为只有两个。上面的所有圈和最下面一个圈。
         */
        public static void hanoi(int n,char A,char B,char C) {
            //只有一个圈。
            if(n==1) {
                System.out.println("第1个盘子从"+A+"移到"+C);
            //无论有多少个圈,都认为只有两个。上面的所有圈和最下面一个圈。
            }else {
                //移动上面所有的圈到中间位置
                hanoi(n-1,A,C,B);
                //移动下面的圈
                System.out.println("第"+n+"个圈从"+A+"移到"+C);
                //把上面的所有圈从中间位置移到目标位置
                hanoi(n-1,B,A,C);
            }
        }

}

 

posted @ 2019-11-22 15:30  自信的咸鱼  阅读(135)  评论(0编辑  收藏  举报