package 递归之汉诺塔问题;
public class TestHanoi {
public static void main(String[] args) {
hanoi(3,'A','B','C');
}
/**
*
* @param n 共有N个盘子
* @param from 开始的柱子
* @param in 中间的柱子
* @param to 目标柱子
*/
public static void hanoi(int n,char from,char in,char to)
{
//只有一个盘子
if(n==1)
{
System.out.println("第"+n+"盘子从"+from+"移到"+to);
//无论有多少个盘子,都认为只有2个。上面的所有盘子和最下面的一个盘子
}else //参照2个盘子写代码
{
//移动上面所有的盘子
hanoi(n-1,from,to,in);
//移动下面的盘子
System.out.println("第"+n+"个盘子从"+from+"移到"+to);
//把上面所有的盘子放到最后一个盘子的上面
hanoi(n-1,in,from,to);//2个的话最后一步就是把中间的放在目标位置
}
}
}