package TestTwo.demo1;
public class TestHanoi {
public static void main(String[] args) {
hanoi(3,'A','B','C');
}
/**
* 无论有多少个盘子,都认为只有两个盘子。上面的所有盘子和下面的最后一个盘子。
* @param n 共有N个盘子
* @param form 开始的柱子
* @param in 中间的柱子
* @param to 目标柱子
*/
public static void hanoi(int n,char form,char in,char to){
if (n==1){
System.out.println("把第"+n+"个盘子从"+form+"移到"+to);
//无论有多少个盘子,都认为只有两个盘子。上面的所有盘子和下面的最后一个盘子。
}else {
//移动上面的所有盘子到中间位置
hanoi(n-1,form,to,in);
//移动下面的盘子
System.out.println("把第"+n+"个盘子从"+form+"移到"+to);
//把上面的所有盘子从中间位置移动到目标位置
hanoi(n-1,in,form,to);
}
}
}
汉诺塔问题
最新推荐文章于 2021-08-22 19:50:49 发布