public class Hannuota {
//汉诺塔
//塔中有三个柱子,ABC,A上有64个盘子,盘子大小不等,大的在下,小的在上
//把A上64个盘子移动到C,每次只能移动一个盘子,移动过程中保证大的在下,小的在上
//移动过程中可以利用B,给定层数,函数输出每一步如何移动
public static void moveDish(int level,char from,char inter,char to){
//给出递归终止条件
if(level == 1){
//终止条件的解决办法
System.out.println("从"+from+"移动盘子"+level+"号到"+to);
return;
}
//递归调用
//将level-1个盘子从from移动到inter,借助于to作为中转柱子,不是一次性
moveDish(level-1,from,to,inter);
//from只剩一个盘子,直接从from移动到to
System.out.println("从"+from+"移动盘子"+level+"号到"+to);
//将inter上的level-1个盘子从inter移动到to,借助于from作为中转柱子
moveDish(level-1,inter,from,to);
}
public static void main(String[] args) {
moveDish(3,'A','B','C');
}
}