1205:汉诺塔问题

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 19568     通过数: 7240

【题目描述】

约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。

这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,709,551,615

这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万年。我们仅能找出问题的解决方法并解决较小N值时的汉诺塔,但很难用计算机解决64层的汉诺塔。

假定圆盘从小到大编号为1, 2, ...

【输入】

输入为一个整数(小于20)后面跟三个单字符字符串。

整数为盘子的数目,后三个字符表示三个杆子的编号。

【输出】

输出每一步移动盘子的记录。一次移动一行。

每次移动的记录为例如 a->3->b 的形式,即把编号为3的盘子从a杆移至b杆。

【输入样例】

2 a b c

【输出样例】

a->1->c
a->2->b
c->1->b

【分析】

汉诺塔问题是经典问题,每本语言书中都有这道题。注意本题的要求是最终将盘子从a盘移动到b盘,而不是c盘。

【参考代码】

#include <stdio.h>
void move(char x,int y,char z)
{printf("%c->%d->%c\n",x,y,z);
}
void hanoi(int n,char a,char c,char b) //a所在盘,c目标盘,b中转盘
{if(n==1)move(a,n,c);else{hanoi(n-1,a,b,c);move(a,n,c);hanoi(n-1,b,c,a);}
}
int main()
{int m;char x,y,z;scanf("%d %c %c %c",&m,&x,&y,&z);hanoi(m,x,y,z);return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1205

信息学奥赛一本通(1205:汉诺塔问题)相关推荐

  1. 信息学奥赛一本通 1205:汉诺塔问题 | OpenJudge 2.2 6261:汉诺塔问题

    [题目链接] [ybt 1205:汉诺塔问题 OpenJudge 2.2 6261:汉诺塔问题 [题目考点] 1. 递归 [解题思路] 设输入的左中右三个杆分别为a,b,c.题目要将摞在a杆上的n层汉 ...

  2. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  3. 信息学奥赛一本通超详细题解,动画图文题解

    内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...

  4. 汉诺塔问题(信息学奥赛一本通-T1205)

    [题目描述] 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移 ...

  5. 一本通1205:汉诺塔问题(含严格证明)

    [题目描述] 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移 ...

  6. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  7. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  8. 信息学奥赛一本通1258:数字金字塔

    题目 信息学奥赛一本通(C++版)在线评测系统 思路 这一道题大家可以自己先在纸上画一画,不出意外的话,你的答案应该是这样的 算出来答案是63,然而!有一个更优的答案!! 结果是86! 这是为啥嘞?因 ...

  9. 汉诺塔(三)_栈的应用

    问题 E: 汉诺塔(三) 时间限制: 3 Sec  内存限制: 128 MB 提交: 2  解决: 2 [提交][状态][讨论版] 题目描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北 ...

最新文章

  1. 资源 | 麻省理工学院开放 2018 自动驾驶课程
  2. Windows Live Writer新版新功能试用
  3. ArcGIS Server 部署与配置
  4. python微博热点_用 Python 监控知乎和微博的热门话题
  5. 你怎么了珍妮,你醒醒啊珍妮~ | 今日最佳
  6. 《Effective Objective-C 2.0》1、熟悉Objective-C
  7. 零基础学习次世代,3D游戏建模要美术基础吗?
  8. 在相册查看保存的图片
  9. 快到年底了,小伙伴开始关心年终奖话题了
  10. 系统学习 TypeScript(一)——认识 TypeScript
  11. 深入理解ES6之《迭代器与生成器》
  12. VirtualBox安装虚拟机后分辨率调不对怎么办
  13. Hystrix原理介绍:服务雪崩、断路器、服务降级、资源隔离-《Spring Cloud微服务架构进阶》读书笔记
  14. js判断文件后缀名方法
  15. IT行业都有哪些职位,初学者(0基础,新人)该如何选择,才能够快速进入这个行业?...
  16. 括号匹配,实现简单计算器(加减乘除,小括号)
  17. 用户空间与内核空间数据交换-2-generic netlink
  18. Oracle——单列函数,多表连接
  19. windows下mysql-5.7.30-winx64解压安装步骤
  20. Lammps实现水分子在纳米颗粒球表面的吸附行为

热门文章

  1. 谈谈Java虚拟机——Class文件结构
  2. 取出重复记录的第一条
  3. 利用Attribute扩展MVC的Title和Sitemap
  4. windows虚拟机_iOS 版虚拟机:在 iPhone 上运行 Windows 系统
  5. 设计抗100亿请求的春晚红包系统
  6. 蚂蚁科技 Service Mesh 落地实践与挑战 | GIAC 实录
  7. Sonatype Nexus高级配置
  8. hibernate映射数据库表如何在不插入值的情况下使表中字段默认值生效
  9. 使用Maven Archetype生成工程报错的解决
  10. MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解