/*
* 经典的汉诺塔问题 :
* 解法:A\B\C 3个柱子;
* 假如有1个盘子,直接从A->C;
* 假如有2个盘子,先把前面的1个A->B,然后最后一个A->C,最后把剩下的B->C;
* 假如N>2时,就递推出和2一样的步骤;
*/
public class Hanoi {
public void move(int n,char A,char B,char C)
{
if(n==1){
System.out.println("盘"+ n +"由"+A+"移至"+C);
}
else
{
move(n-1,A,C,B);
System.out.println("盘"+ n +"由"+A+"移至"+C);
move(n-1,B,A,C);
}
}
public static void main(String[] args) {
new Hanoi().move(3, 'A', 'B', 'C');
}
}
输出结果:
盘1由A移至C
盘2由A移至B
盘1由C移至B
盘3由A移至C
盘1由B移至A
盘2由B移至C
盘1由A移至C