汉诺塔-递归

/**
 * @author: Administrator
 * @date: 2019/12/20 0020
 * 汉诺塔
 * @param  'n' 共有n个盘子
 * @param 'from' 开始的柱子
 * @param 'in' 中间的柱子
 * @param 'to' 目标柱子
 *    无论有多少盘子,都认为只有两个,上面的所有盘子和最下面的一个盘子
 */
public class hannuot {
    public static void main(String[] args) {
        hanoi(5,'A','B','C');
    }

    private static void hanoi(int n, char from, char in, char to) {
        //只有一个盘子
        if (n==1){
            System.out.println("第1个盘子从"+from+"移到"+to);
        }else {
         //移动上面所有的盘子到中间的柱子
         hanoi(n-1,from,to,in);
            System.out.println("第"+n+"个盘子从"+from+"移动"+to);
         //把上面所有的盘子从中间位置移动到目标位置
            hanoi(n-1,in,from,to);

        }
    }
}
posted @ 2019-12-20 17:22  素颜~  阅读(108)  评论(0)    收藏  举报