java求解汉诺塔问题示例
2014-02-21 12:00
549 查看
思路如下:
要实现3阶汉诺塔的求解步骤,也就是说初始状态时,A上从上到下有三个盘子,分别为1号盘、2号盘和3号盘,其中1号盘最小,3号盘最大;
判断剩余盘子个数,如果只有一个盘子就退出迭代,如果有大于一个盘子就继续迭代。
代码如下:
public class HanoiTower {
public static void moveDish(int level, char from, char inter, char to) {
if (level == 1) {// 如果只有一个盘子就退出迭代
System.out.println("从 " + from + " 移动盘子 1 号到 " + to);
} else {// 如果有大于一个盘子就继续迭代
moveDish(level - 1, from, to, inter);
System.out.println("从 " + from + " 移动盘子 " + level + " 号到 " + to);
moveDish(level - 1, inter, from, to);
}
}
public static void main(String[] args) {
int nDisks = 3;// 设置汉诺塔为3阶
moveDish(nDisks, 'A', 'B', 'C');// 实现移动算法
}
}
您可能感兴趣的文章:
相关文章推荐
- JAVA求解汉诺塔问题
- Java使用递归法解决汉诺塔问题的代码示例
- java中使用递归求解汉诺塔问题
- java-汉诺塔问题求解
- Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例
- Java求解汉诺塔问题
- 分治法在求解凸包问题中的应用(JAVA)--快包算法
- Java基于栈方式解决汉诺塔问题实例【递归与非递归算法】
- 用JAVA中的多线程示例生产者和消费者问题
- 减治法在求解拓扑排序问题中的应用(JAVA)--有向无环图
- 基于禁忌搜索算法求解TSP问题(JAVA)
- 用递归算法求解汉诺塔问题
- 递归的定义以及递归的示例(计算阶乘、计算斐波那契数、递归二分查找、回文串递归方法解决、汉诺塔问题、递归选择排序问题)
- 蛮力法在求解凸包问题中的应用(JAVA)
- Java求解迷宫问题:栈与回溯算法
- 基于爬山算法求解TSP问题(JAVA)
- 蚁群算法java实现以及TSP问题蚁群算法求解
- 算法问题基于蚁群算法求解求解TSP问题(JAVA)
- Java队列递归求解素数环问题
- PHP递归实现汉诺塔问题的方法示例