Openjudge 1005:汉诺塔问题(Hanoi)
发布日期:2021-05-20 10:07:21 浏览次数:41 分类:技术文章

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

汉诺塔问题

有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 每次只能移动一个圆盘; 大盘不能叠在小盘上面。 提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须遵循上述两条规则。

问:如何移?最少要移动多少次?

思路: 递归解, 三根杆分别用src(左),mid(中),dest(右)代替。

  1. 先将n-1个盘子借助中介杆从src移动到mid
  2. 再将一个盘子借助中介杆从src移动到dest
  3. 最后将n-1个盘子借助中介杆从mid移动到dest
    汉诺塔手工解法
#include
using namespace std;void Hanoi(int n, char src, char mid, char dest) {
//将src上的n个盘子,以mid为中介,移动到dest上 if (n == 1) {
//只需移动一个盘子 cout << n << ":" << src << "->" << dest << endl; //直接将盘子从src移动到dest即可 return; //递归终止 } Hanoi(n-1, src, dest, mid); //先将n-1个盘子从src移动到mid cout << n << ":" << src << "->" << dest<< endl; //再将一个盘子从src移动到dest Hanoi(n-1, mid, src, dest); //最后将n-1个盘子从mid移动到dest return; }int main() {
int n; char a, b, c; cin >> n >> a >> b >>c; Hanoi(n, a, b, c); return 0;}

转载地址:https://blog.csdn.net/weixin_45417428/article/details/104520713 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Hadoop初识篇:三台Centos机集群搭建
下一篇:Vue.js使用Element-ui的路由跳转实例

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年03月28日 18时03分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

python中pca算法_使用python的numpy库实现PCA算法 2019-04-21
2020word替换所有文本_Excel字符函数(5):REPLACE、SUBSTITUTE查找替换函数之区别... 2019-04-21
win10安装ipython_win10环境 ipython app.py 8080 这里为什么是ipython 这步无法启动 2019-04-21
statelesswidget 初始化执行方法_Spring的初始化回调你真的搞懂了吗? 2019-04-21
nhibernate和mysql_利用NHibernate与MySQL交互 2019-04-21
python22期_python22期第八天(正则表达式-模块,总结) 2019-04-21
假定在MYSQL_假定在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义如下 - 问答库... 2019-04-21
mysql多字段存储过程_mysql 的存储过程_多字段 2019-04-21
python怎么创建字符串列表_如何在python列表中为每个字符串创建子列表? 2019-04-21
vba ado 执行多条mysql 语句_access 按钮 多条sql语句 VBA 2019-04-21
弹性方法计算连续梁板内力_(梁板结构)混凝土结构设计复习题及答案 2019-04-21
java root权限_android java获得root权限调用linux命令 | 学步园 2019-04-21
java最小化窗体_JAVA窗体最大化最小化控制+托盘 2019-04-21
java 注解 数组默认值_Java注解默认值 2019-04-21
java流程语句_Java流程控制语句 2019-04-21
java require_java正则中的requireEnd和hitEnd 2019-04-21
400错误java_java代码转化成c#代码 报400错误 2019-04-21
java常见对象_Java 常见对象 02 2019-04-21
spring java配置_Spring Java配置要点 2019-04-21
共享内存 java_java - Java客户端-服务器编程:客户端之间的共享内存 - 堆栈内存溢出... 2019-04-21