package hello;
class Hanoi1
{
private int c;
public Hanoi1()
{c=0;}
//把getme最上面的盘子移动到putone位置
public void move(char getme,char putone)
{ c=c+1; //我们每移动一步,就计数一次
System.out.println(getme+"-->"+putone+" 搬盘次数为:"+c);
}
//n个盘子,one,two,three分别为第一,第二,第三个柱子。
//现在在柱子one上一共有n个盘子,这个函数能够通过two把它移动到three上面。
public void hanoi(int n,char one,char two,char three)
{ if(n==1)
move(one,three);//如果,就一个盘子,把第一个柱子上的盘子,放到第三个上面
else{
//如果大于一个盘子呢
hanoi(n-1,one,three,two); //先想办法把one柱子上的前n-1个移动到柱子two上
move(one,three); //然后把one柱子上的第n个移动到柱子three上。
hanoi(n-1,two,one,three); //然后想办法把two柱子上的n-1个移动到three上。
}
}
}
public class Hanoi
{
public static void main(String args[])
{int n=4;
System.out.println("搬"+n+"个盘数的步骤:");
Hanoi1 a=new Hanoi1();
a.hanoi(n,'A','B','C');
}
}