public class Han2 {
public void han(int n,char a,char b,char c){
if(n==1){//将最上面的一块挪动到目标,中介柱b
System.out.println(a+"--->"+c);//a移动到c
}else{//超过1块移动方法
han(n-1,a,c,b);//继续调用本身,先移动除最下面一块外上面所有的圆块到中间柱b,当首参数n-1=1时,代表开始移动最下一块,使最下面一块可以直接移动到c.
System.out.println(a+"-->"+c);//a移动到c
han(n-1,b,a,c);//继续调用本身,上面移动完最下面一块从a到c后,开始将剩余所有在b的砖块从b移动到c
}
}
public static void main(String[] args) {
Han2 h = new Han2();
h.han(3, 'a', 'b', 'c');
}
}
汉诺塔(简单递归版)
最新推荐文章于 2021-08-22 20:04:06 发布