public class Java {
public static void main(String[] args) {
/*
1.要有三个塔 用'A' 'B' 'C' 表示
2.可以把塔山的盘设为n个,然后分为两部分(最下面一个和上面所有)
3.将(n-1)个盘子移动到B,再将最下面盘子移动到C,最后将(n-1)个盘子移动到C即可
4.当n=1时,表示只有一个盘子,直接将盘 A->C 即可 也代表递归的结束
*/
HanNuo PanZi= new HanNuo();
PanZi.move(3, 'a', 'b', 'c');
}
}
class HanNuo{
//设置一个方法来移动盘子
//num表示盘子数 abc表示塔 要将盘子从a移动到c,以b为媒介
public void move(int num ,char a ,char b ,char c) {
if(num==1) {//当盘子为一个时,直接将a塔移动到c塔即可
System.out.println(a +"->"+ c);
}else {
//将(n-1)个盘子从a移动到b,以c为媒介
move((num-1),a,c,b);
//将最下面盘子移动到c
System.out.println(a +"->"+ c);
//将(n-1)个盘子移动到c,以a为媒介
move((num-1),b,a,c);
}
}
}
对上述代码如果存在疑惑,欢迎评论区留言讨论!