Hanoi问题简述: 将A上的n个圆盘借助B移到C上,求需要移动的次数or打印移动过程
递归的经典问题,问题详细就不多说了。
求解:问题分解:
(1) 将A上的N-1个盘移动到B上
(2) 将B上的N-1个盘再移动到C上
以上即显示了递归思想:将父问题分解为2个子问题
Hanoi(1) = 1
Hanoi(n) = 2*Hanoi(n-1) + 1; 其中1:盘n由A–>C的一次操作
实现
public class Code3_Hanoi {
public static void main(String[] args) {
System.out.println(Hanoi(10));
System.out.println(Hanoi(2));
HanoiPrint("A", "B", "C", 2);
System.out.println(Hanoi(3));
System.out.println("========================");
HanoiPrint("A", "B", "C", 3);
System.out.println("======================&#