数据结构-n阶Hanoi塔问题作业_孙志佳(017)_计算机科学与技术2._第1页
数据结构-n阶Hanoi塔问题作业_孙志佳(017)_计算机科学与技术2._第2页
数据结构-n阶Hanoi塔问题作业_孙志佳(017)_计算机科学与技术2._第3页
数据结构-n阶Hanoi塔问题作业_孙志佳(017)_计算机科学与技术2._第4页
数据结构-n阶Hanoi塔问题作业_孙志佳(017)_计算机科学与技术2._第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、n阶Hanoi塔问题塔问题解题思路汇报专业:计算机科学与技术班级:A班学号:017姓名:孙志佳题目介绍题目介绍1 分析问题复杂性及举例说明分析问题复杂性及举例说明2程序代码程序代码3一、题目介绍: 假设有三个命名为XY Z的塔座 ,在塔座X上插有n个直径大小不相同,由小到大编号为1 ,2 ,3 , ,n的圆盘,要求将X座上的圆盘移至塔座C并按同样的顺序叠排。圆盘移动必须遵守下列规则: 1:每次只能移动一个圆盘 2:圆盘可以插在任意一个塔座上 3:任何时刻都不能将一个较大的圆盘放在一个较小的圆盘上二、分析问题分析问题复杂性及举例说明:及举例说明:分析:分析:若有n个盘子,則移动完所需之次数为2n

2、 - 1,所以当盘数为64时,则所需次数为: 264 - 1 = 18446744073709551615 为5.05390248594782e+16年,也就是约5000世纪,如果对这数字没什么概念,就假设每秒钟搬一个盘子好了,也要约5850亿年左右。举例说明:举例说明:以三阶Hanoi塔为例,我们所需要的7个步骤是:1Z2Y1Y3Z1X2Z1Z则对于n阶Hanoi塔: n = 1时只需将编号为1的圆盘从X座移至Z座 n 1时,我们分三个阶段: 1:将X塔座上的n-1个圆盘按照规定移至到Y塔座 2:将编号为n的圆盘由X座移至Z座 3:利用X塔座,将Y塔座上的n-1个圆盘按规定移至到Z塔座xyz

3、图例三、程序代码:#include void hanoi(int i , char X , char Y , char Z);void move(int i , char x , char y);int main()int n ;printf(请输入n的值:);scanf(%d,&n); hanoi(n , X , Y , Z); return 0 ; void hanoi(int i , char X , char Y , char Z) if(i = 1)move(i ,X, Z);else hanoi(i - 1 , X , Z , Y); /函数递归调用 move(i , X , Z);hanoi(i - 1 , Y , X , Z); void move(int i , char x , char y) static int c = 1 ; /局部变量i申明为 static

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论