用递归求解汉诺塔问题
public class Hanoi {
public static void main(String[] args) {
// TODO Auto-generated method stub
hnt(3,"a","b","c");
}
/*n为盘子的个数
第一个字符(a)为起始的柱子
第二个字符(b)为目标的柱子
第三个字符(c)为辅助的柱子*/
//把n个柱子以a为起始,以c为辅助,移到b
static void hnt(int n,String a,String b,String c)
{
if(n==1)
{
System.out.println("把"+n+"号从"+a+"移动到"+b);
return;
}
hnt(n-1,a,c,b);//把n-1个盘子以a为起始,以b为辅助移到c
System.out.println("把"+n+"号从"+a+"移动到"+b);//n号柱子就可以从a移到b
hnt(n-1,c,b,a);//把n-1个盘子以c为起始,以a为辅助移到b
}
}