汉诺塔问题
目标:将A上面的方块移动到C上面 并且不能将大的方块落到小的方块上面
注意:灵魂画手已出现共经历了七部
大中小 ---- 123
一个盘子:大到3
两个盘子:小到2 大到3 小到3
三个盘子:小到3 中到2 小到2 大到3 小到1 中到3 小到3
以此类推:
总移动步数:2**n - 1
大于三个盘子:可以理解成一个整体 然后按照两个盘子去思考
public static void hanoi(int num, int start, int mid, int end) {
if (num == 1) {
System.out.println(start + "--->" + end);
} else {
hanoi(num - 1, start, end, mid);
System.out.println(start + "--->" + end);
hanoi(num - 1, mid, start, end);
}
}
盘子再多 我们就把他简化成两个 去看待
当num-1个盘子放到中间未知的时候 我们就把中间的柱子看做第一个继续去进行
hanoi(1, 11, 22, 33);
System.out.println("========");
hanoi(2, 11, 22, 33);
System.out.println("========");
hanoi(3, 11, 22, 33);