汉诺塔问题
2019-04-02 本文已影响0人
JaJIng
public class Hanoi {
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
hanoi.hanoiMove(3,'a','b','c');
}
//a:要挪动盘子的位置,c:需要挪动到的位置,b:借助的中间位置
public void hanoiMove(int n,char a,char b,char c){
if(n == 1){
//递归出口
move(a,c);
}else{
//把a柱除了最下面的那块上面的所有盘子看作一个整体,递归的挪到b去;
hanoiMove(n-1,a,c,b);
//把a柱最下面的那块挪到c;
move(a,c);
//把b柱的第一步到来的所有盘子最后挪到c;
hanoiMove(n-1,b,a,c);
}
}
public void move(char from ,char to){
System.out.println("Move :"+ from + "," + to);
}
}