之前一直觉得汉诺塔问题很难,今天看了视频,利用递归的思想,觉得好像不是那么难。
这里使用三根柱子,分别是from,to,help,to是我们最终要放的柱子,help是辅助的柱子,
步骤如下:
- 先把1~n-1 从from挪到help上
- 把n 从from挪到to上
- 把1~n-1挪到to上
具体代码如下:
public static void process(int N, String from, String to, String help) {
if (N == 1) {
System.out.println("Move 1 from" + from + "to" + to);
} else {
process(N - 1, from, help, to); //将1~N-1挪到help上,to当作辅助的
System.out.println("Move " + N + " from" + from + "to" + to);
process(N - 1, help, to, from);
}
}