博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥学院2019算法题2.6
阅读量:6268 次
发布时间:2019-06-22

本文共 1092 字,大约阅读时间需要 3 分钟。

汉诺塔题目要求:

解题思路:

1~N从A移动到B,C作为辅助

  等价于:

  1、1~N-1从A移动到C,B作为辅助

  2、把N从A移动到B

  3、1~N-1从C移动到B,A为辅助

算法实现:

1 package recursion; 2  3 /** 4  * @author zsh 5  * @company wlgzs 6  * @create 2019-02-16 8:53 7  * @Describe 汉诺塔 8  */ 9 public class TowerOfHanoi {10 11     /**12      *  将N个盘子从原始柱子移动到目标柱子的路径打印13      * @param N 初始的盘子大小,N为最大编号14      * @param from 原始柱子15      * @param to 目标柱子16      * @param help 辅助柱子17      * 解题思路:18      * 找重复:1到N-1个盘子移动到辅助空间,N移动到目标柱子。19      * 找变化量:N20      * 找出口:N == 121      */22     static void printHanoiTower(int N,String from,String to,String help){23         if (N == 1){24             System.out.println("move" + N +from+"to"+to);25             return;26         }27         //先把N-1个盘子挪到辅助空间上去28         printHanoiTower(N -1 ,from,help,to);29         //N可以顺利到达目标柱子30         System.out.println("move" + N +from+"to"+to);31         //让N-1个盘子回到源空间上去32         printHanoiTower(N-1,help,to,from);33     }34 35     public static void main(String[] args) {36         printHanoiTower(3,"A","B","C");37     }38 }

 

转载于:https://www.cnblogs.com/zsh-blogs/p/10386740.html

你可能感兴趣的文章
c++ 网络库
查看>>
Linux 格式化扩展分区(Extended)
查看>>
linux echo命令
查看>>
nginx 内置变量大全(转)
查看>>
lakala反欺诈建模实际应用代码GBDT监督学习
查看>>
java 解析excel工具类
查看>>
Google FireBase - fcm 推送 (Cloud Messaging)
查看>>
BBS论坛(二十七)
查看>>
html DOM 的继承关系
查看>>
装饰器的邪门歪道
查看>>
Dubbo常用配置解析
查看>>
【转】C#解析Json Newtonsoft.Json
查看>>
macports的安装及常用命令
查看>>
(转)使用C#开发ActiveX控件
查看>>
spring mvc 基于注解 配置默认 handlermapping
查看>>
半小时学会上传本地项目到github
查看>>
Android学Jni/Ndk 开发记录(一)
查看>>
Linux Tcl和Expect的安装
查看>>
WPF中的依赖项属性(转)
查看>>
linux防火墙相关 iptables
查看>>