如何把n个圆盘移动到C呢?
1>把n-1个圆盘由A移到B;
2>把第n个圆盘由A移到C;
3>把n-1个圆盘由B移到C;
我们是把n-1个圆盘看成一个整体去分析的,
那如何把n-1个圆盘从A移到B呢?(借助C塔移到了B上)
我们可以把n-2个圆盘看成一个整体去分析:
1>把n-2个圆盘由A移到C;
2>把第n-1个圆盘由A移到B;
3>把n-2个圆盘由C移到B;
那如何把n-1个圆盘从B移到C呢?(借助A塔移到了C上)
1>把n-2个圆盘由B移到A;
2>把第n-1个圆盘由B移到C;
3>把n-2个圆盘由A移到C;
public static void hanoi(int n, char a, char b, char c) {
if (n == 0) {
return;
}
hanoi(n-1,a,c,b);
print(a,c);
hanoi(n-1,b,a,c);
}
public static void print(char a, char b) {
System.out.println("把" + a + "移动到" + b);
}
public static void main(String[] args) {
hanoi(3,'A','B','C');
}
输出结果:



