1. 有三根杆子 left,mid,right。left杆上有碟子数量count
2. 每次移动一块碟子,小的只能叠在大的上面
3. 把所有碟子从 left 杆全部移到 right 杆上
package demo;
//汉诺塔实例
public class Tower{
public static void main(String[] args) {
int count = 3;
doTowers(count, "left", "mid", "right");
}
public static void doTowers(int count, String left, String mid, String right) {
if (count == 1){
System.out.println("do 1 from " + left + " to " + right);
}else {
doTowers(count - 1, left, right, mid);
System.out.println("do " + count + " from " + left + " to " + right);
doTowers(count - 1, mid, left, right);
}
}
}
运行结果