汉诺塔问题 Java实现
来源:互联网 发布:淘宝商城咨询电话 编辑:程序博客网 时间:2024/06/06 00:54
汉诺塔3个柱子 a b c 要把盘子从a 移到c上
1. 先将前63个盘子移动到b上,确保大盘在小盘下。
2.再将最底下的第64个盘子移动到c上。
3. 最后将b上的63个盘子移动到c上。
实现图解
思路:
1.移动一个 直接从 要移动的塔 移动到目标塔即可
2.移动两个需要借助中间塔才能从 要移动的塔移动到目标塔
3.移动两个以上的 可以使用递归的思想 最后成为移动两个模型
4,不同步骤 要移动的塔 中间塔 和 目标塔是变化的。
代码如下
public class HannuotaTest {/** * * @param n * @param moveTower 要移动的塔 * @param middleTower 中间塔 * @param targetTower 目标塔 */public static void move(int n,char moveTower,char middleTower ,char targetTower){//3.当只需要移动一个时,直接移动if(n==1){System.out.println(moveTower+"->"+targetTower);return;}//1.三步中的第一步 目标塔和中间塔变了move(n-1,moveTower,targetTower,middleTower);System.out.println(moveTower+"->"+targetTower);//2.三步中的第二步 要移动的塔和中间塔变了move(n-1,middleTower,moveTower,targetTower);}public static void main(String[] args) {int n = 4;move(n,'a','b','c');}}
0 0
- 汉诺塔问题 Java实现
- 汉诺塔问题 java实现
- Java 递归实现汉诺塔问题
- 汉诺塔问题(java实现)
- 汉诺塔问题(java实现)
- java 递归实现汉诺塔问题
- JAVA: 用java实现汉诺塔问题
- 汉诺塔问题的java递归实现
- 递归实现汉诺塔的问题---java
- 汉诺塔问题 Java 语言递归实现
- 汉诺塔问题(基础)(java实现)
- 背包问题-java实现
- 货郎问题 Java 实现
- java实现约瑟夫问题
- LCS问题,JAVA实现
- java实现约瑟夫问题
- 硬币问题java实现
- 约瑟夫问题 java 实现
- 系统调用
- UILabel改变行间距、字间距(swift)
- 17 - 03 - 07 图解HTTP(11)
- Android程序员学PHP开发(2)-第一次配置php.ini-PhpStorm
- log4j MDC NDC应用场景
- 汉诺塔问题 Java实现
- 【备忘】2014年传智播客基础班+就业班 ios(第四期)完整视频下载
- Jquery清空div内容
- 字母打印机 循环中标记变量的更改
- SPRING中的线程池ThreadPoolTaskExecutor
- html文档包含另一个html
- android-24中DatagramSocket的坑,以及synchronized的用法详解
- 所有类的基类——Object
- 读取Oracle的指定行