- 1
- 0
- 约2.76千字
- 约 13页
- 2021-10-13 发布于安徽
- 举报
第二章 递归程序设计;一、栈与递归;1.1汉诺塔问题递归程序设计
汉诺(Hanoi)塔问题:假设有命名为A、B、C的三个塔柱,初始时,在塔柱A上插有n个直径大小各不相同的圆盘,从上往下,圆盘从小到大编号为1、2、3、···n,要求将A柱上的圆盘移至塔柱C,可借助塔柱B,用程序模拟搬盘子过程。圆盘移动必须遵守下列规则:
1:每次只能移动一个圆盘;
2:圆盘可以插在任意一个塔柱上;
3:任何时刻都不能将一个较大的圆盘放在一个较小的圆盘上。;用分治法解决。
对于具有n个圆盘的汉诺塔问题,形参x、y、z代表三个塔柱,将x柱上的圆盘移至塔柱z,可借助塔柱y。问题分析如下:
n等于1时只需直接将圆盘从x柱移至z柱即可;
n大于1时,我们分三步完成:
Step1:借助z塔柱,将x塔柱上的n-1个圆盘按照规定移至到y塔柱;
Step2:将x塔柱上的一个圆盘由x柱移至z柱;
Step3:借助x塔柱,将y塔柱上的n-1个圆盘按规定移至到z塔柱;//Ex2.1 汉诺塔问题完整样例
1 #include stdio.h
2 //将n个盘从x柱搬至z柱,可借助y柱
3 void Hanoi (int n, char x, char y, char z);
4
5 int main ()
6 { int n; //盘子数量
7 scanf( %d,
您可能关注的文档
- 体育与健康教学课件(第1章)高校体育.ppt
- 体育与健康教学课件(第2章)体育与人.ppt
- 体育与健康教学课件(第3章)体育健康.ppt
- 体育与健康教学课件(第4章)职业体能.ppt
- 体育与健康教学课件(第5章)运动损伤.ppt
- 体育与健康教学课件(第6章)体质健康与评价.ppt
- 体育与健康教学课件(第7章)田径.ppt
- 体育与健康教学课件(第8章)篮球.ppt
- 体育与健康教学课件(第9章)排球.ppt
- 体育与健康教学课件(第10章)足球.ppt
- 程序设计综合实践教学课件2-2 分治法.pptx
- 程序设计综合实践教学课件2-3-1 回溯法 - 八皇后问题.pptx
- 程序设计综合实践教学课件2-3-2 回溯法 - 01背包问题.pptx
- 程序设计综合实践教学课件3-1 查找和简单排序.pptx
- 程序设计综合实践教学课件3-2 归并排序和快速排序.pptx
- 程序设计综合实践教学课件3-3 其它特殊排序方法.pptx
- 《电气控制与PLC技术及应用》课件 第7章 可编程序控制器编程基本指令及编程.pptx
- 《电气控制与PLC技术及应用》课件 第11章 FX3U系列可编程序控制器.pptx
- 工程项目管理教学课件 第5章 工程项目质量验收及竣工验收阶段的管理 改.pptx
- Python编程基础与案例集锦(中学版)-教学大纲.docx
原创力文档

文档评论(0)