package algorithm.recursion; public class HanoiTower{ private static int step= 0; /**汉诺塔的递归演示。 * @param from 碟子的出发地 * @param temp 碟子的中转站 * @param to 碟子的到达地 * @param n 要移动的碟子个数 */ static void hanoi(char from, char temp, char to, int n){ if (n == 1) { step++; System.out.println("第"+step+ "步: "+ from+"→"+ to); }else { //将n-1个碟子移到中转站,故目前的到达地是temp。 hanoi(from, to,temp,n-1); //第n个碟子移到到达地 step++; System.out.println("第"+step+ "步: "+ from+"→"+ to); //将n-1个碟子移到到达地。 hanoi(temp,from,to,n-1); } } }