Java-汉诺塔问题

//汉诺塔问题
public class Hannoi
{
	public static void main(String []args){
		Tower tower = new Tower();
		tower.move(5,'A','B','C');
	}
}

class Tower
{
	//num 表示要移动的个数
	public void move(int num,char a,char b,char c){
		//如果只有一个盘num =1
		if(num == 1){
			System.out.println(a + "--->" + c);
		}else{
			//如果有多个盘,可以看出两个盘,最下面的和上面的所有盘
			//(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);
		}
	}
}

 

posted @ 2022-10-29 20:27  通过程序看世界  阅读(32)  评论(0)    收藏  举报