编写汉诺塔算法去玩4399小游戏

写一波汉诺塔代码来闯关4399小游戏

package com.zhao.algorithm;

/**
 * 汉诺塔问题
 */
public class Hanoi {
    public static void main(String[] args) {
        hanoi(4,"左柱子","中间柱子","右柱子");
    }
    /**
     * 汉诺塔问题  可以把n个盘看成n 和n-1个盘然后运用递归处理
     * 他的主子是三个
     * @param n 几个盘
     * @param left 左边的柱子
     * @param mid 中间的柱子
     * @param right 右边的柱子
     */
    public static  void hanoi(int n,String left,String mid,String right){
        if(n==1){
            System.out.println("从"+left+"移动盘1到"+right);
        }else {
            //首先移动n-1个盘到中间的柱子
            hanoi(n-1,left,right,mid);
            //然后移动下面的第n个盘
            System.out.println("从"+left+"移动盘"+n+"到"+right);
            //移动中间的n-1个盘到右边
            hanoi(n-1,mid,left,right);
        }

    }
}

posted @ 2020-02-13 20:57  Angry-rookie  阅读(315)  评论(0编辑  收藏  举报