汉诺塔
汉诺塔实现代码
.
// An highlighted block
/**
*
* @param num 盘子的数量
* @param from 开始移动的柱子
* @param in 中间转换用的柱子
* @param to 所有盘子要去的柱子
* 无论盘子有多少,都认为有两个盘子,即n个盘子可视为上面n-1个盘子和最下面一个盘子
*/
public static void hanoi(int num,char from,char in,char to){
if (num == 1){
//盘子数量为1,直接输出
System.out.println("第1号盘子从" + from+"号柱子移动到"+to+"号柱子");
}else{
//盘子数量不为1则继续调用hanoi()方法
//此时挪动上面的n-1个盘子,将n这n-1个盘子挪到中间柱,而对于这n-1个盘子来说,要去的地方就是中间的柱子,所以此时的to在in的位置
//挪完后,最下面的那个盘子自然就挪到了第三个柱子上
hanoi(num-1,from,to,in);
System.out.println("第"+num+"号盘子从" + from+"号柱子移动到"+to+"号柱子");
//现在开始继续将中间的n-1个盘子重复,上面的操作
//此时,这些盘子,又分为上面n-1个和最下面的一个
//对于上面的n-1个而言,此时的开始位置是in,要去的位置是to,中间的位置是from
hanoi(num-1,in,from,to);
}
}
结语
这是来自一个java小白的代码实现,还请各位大佬之指正