问题描述
哈哈哈哈哈哈,自己去4399玩汉诺塔游戏
代码实现
package com.wuxudong.recursion;
//汉诺塔问题
public class Hanoi {
    public static void main(String[] args) {
        hanoi(5,'A','B','C');
    }
    /**
     *
     * @param n 盘子的个数
     * @param from 开始的柱子
     * @param in 中间的柱子
     * @param to 目标柱子
     */
    public static void hanoi(int n, char from,char in, char to){
        //只有两个情况,只有一个盘子和其它大于一个盘子的情况
        //只有一个盘子
        if(n==1){
            System.out.println("第1个盘子从"+from+"移动到"+to);
        }else {
            //无论有多少个盘子都看成两个盘子,上面所有n-1个盘子和下面的一个盘子
            //将上面的盘子移动到中间位置
            hanoi(n-1,from,to,in);
            //将第n个盘子移动到目标柱子
            System.out.println("第"+n+"个盘子从"+from+"移动到"+to);
            //将中间柱子的盘子移动到目标柱子
            hanoi(n-1,in,from,to);
        }
    }
}
                                    来源:https://blog.csdn.net/wuxudong12138/article/details/99694625