public class Test09 {
//汉罗塔问题解决
public static void main(String[] args) {
Test09 test09 = new Test09();
test09.move(2,'A','B','C');
}
public void move(int num,char a,char b,char c){
//如果只有一个盘子
if(num==1){
System.out.println(a+"-->"+c);
}else {
//如果有多个盘子,可以看做两个,最下面和最上面的所有盘子(num-1)
//(1)先移动上面所有的盘子到b,借助c
move(num-1,a,c,b);
//(2)把最下面的盘子移动到c
System.out.println(a+"-->"+c);
//(3)再把b塔的所有盘子移动到c,借助a
move(num-1,b,a,c);
}
}
}
使用java基础中的递归,解决汉罗塔问题
最新推荐文章于 2024-08-30 18:40:43 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)