漢諾塔遊戲《演算法很美》

kongbai發表於2020-12-10

漢諾塔

public class 漢諾塔遊戲 {
    public static void main(String[] args){
        printHanoiTower(3,"A","B","C");
    }

    static void printHanoiTower(int N, String from, String to, String help){
        if (N==1){
            System.out.println("move " + N + "from" + from + "to" + to);
            return;
        }

        printHanoiTower(N-1, from, help, to); //下把前N-1個盒子挪到輔助空間上去
        System.out.println("move" + N + "from" + from + "to" + to);  //N可以順利到達target
        printHanoiTower(N-1, help, to, from);  //讓N-1從輔助空間回到源空間上去


    }
}

在這裡插入圖片描述

printHanoiTower(N-1, from, help, to); 其實就是把N-1個盒子挪到C
 printHanoiTower(N-1, help, to, from); 就是將本來在C的盒子通過A移動到B

相關文章