思路
先移动最底层到其上的部分到辅助位置,
再移动最底层到要求位置,
将辅助位置的移动到最终位置。
代码
public static void func(int rest, int down, String from, String help, String to) {
if (rest == 1) {
System.out.println("move " + down + " from " + from + " to " + to);
} else {
func(rest - 1, down - 1, from, to, help);
func(1, down, from, help, to);
func(rest - 1, down - 1, help, from, to);
}
}