将一整堆分为两部分,最底下一个一部分,剩下的一部分,递归操作,知道不能再分,然后移动。
import sun.plugin.dom.html.ns4.HTMLAnchorCollection;
public class Han {
public static void main(String[] args) {
char a='A',b='B',c='C';
han(2,a,b,c);
}
public static void han(int num,char a,char b,char c)
{
if(num==1)
{
System.out.println("将"+num+"从"+a+"-->"+c);
}else {
//先将上面的一部分移到从a移到b,借助c
han(num-1,a,c,b);
//然后把最底下的一个从a移到c
System.out.println("将"+num+"从"+a+"-->"+c);
//然后把b上的移到c,借助a
han(num-1,b,a,c);
}
}
}