先贴代码,重点要理解递归函数的作用

#include <stdio.h>
int hanoi (int n , char x , char y , char z){//将n个盘子从x到z
if ( n == 1 ){
move( n , x , y , z ) ;
} else {
hanoi ( n-1 , x , z , y ) ;//先将 第n个盘子上面的所有n-1盘子挪到y上(不需要深究这n-1个盘子是怎么挪上去的,因为这是递归,只要有 n==1 这个终止条件就好了)
move (n , x , y ,z );//将第n个盘子从x挪到z上
hanoi ( n-1 , y , x ,z );//将第n个盘子上面的所有n-1盘子从y挪到z上
}

}
void move( int n , char x , char y ,char z ){
printf ( "%d %c->%c \n",n,x,z ) ;
}
int main (){
hanoi (9 , 'A' , ' B' ,' C') ;
   return 0;
}
看函数注释,你差不多就明白了;

汉诺塔 hanoi 如此简单相关推荐

  1. 【头歌】汉诺塔(Hanoi)的递归算法

    任务描述 本关任务:汉诺塔(Hanoi)的递归算法. 相关知识 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏.该游戏是在一块铜板装置上,有三根杆(编号A.B.C),在A杆自下而上.由大到 ...

  2. c语言程序设计电子图书 汉诺塔,用C写的汉诺塔(hanoi)程序

    用C写的汉诺塔(hanoi)程序 分类:计算机等级 | 更新时间:2016-07-07| 来源:转载 #include void movedisc(unsigned n,char fromneedle ...

  3. 汉诺塔(Hanoi)递归算法

    相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏.该游戏是在一块铜板装置上,有三根杆(编号A.B.C),在A杆自下而上.由大到小按顺序放置64个金盘. 游戏的目标:把A杆上的金盘全部移到C杆 ...

  4. 汉诺塔(hanoi tower)游戏

    问题 递归实现汉诺塔 算法实现 #include <stdio.h> void hanoi( int n, char a, char b, char c) {if( n > 0 ) ...

  5. 汉诺塔(Hanoi)问题归纳总结

    一.汉诺塔问题及其递归算法 1.问题阐述 经典汉诺塔: 外文算法书对汉诺塔问题的描述: 2.算法步骤 三阶汉诺塔问题解题步骤 共需7步. 四阶汉诺塔问题解题步骤 共需15步 五阶汉诺塔问题解题步骤 可 ...

  6. 汉诺塔问题的简单理解和总结

    问题: 3个塔a.b.c,n个碟子. 初始--所有碟子放在a号塔,大的在底下,小的在上面 任务--把碟子移动到c号塔,顺序不变,可用b号塔辅助 限制--每次只能移动一个碟子,总是大碟子在下,小的在上 ...

  7. 室友上了个厕所我就学会了递推算法解决汉诺塔hanoi

    对于游戏的玩法,我们可以简单分解为三个步骤 1)将前63个盘子从X移动到Y上: 2)将最底下的第64个盘子从X移动到Z上: 3)将Y的63个盘子移动到Z上: 第二步是最容易实现的一步,那么第一步和第三 ...

  8. C#图形界面汉诺塔Hanoi

    程序源码下载链接:http://download.csdn.net/detail/y85171642/5361537 该程序未使用多线程技术,主要是楼主对多线程不是很了解,求大神改进! 主要使用2D ...

  9. 汉诺塔(hanoi)

    问题描述: 有三根柱子,第一根柱子上有n个盘子,借助第二根柱子,将第一根的所有盘子搬到第三根,在搬运过程中遵循每次只能搬一个,且大盘子在小盘子之下的原则. 解决方案: 首先把柱子标记为ABC, 由A搬 ...

最新文章

  1. 计算机教室网络安全应急预案,北京科技大学计算机与通信工程学院-计算机与通信工程学院实验室安全应急预案...
  2. sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
  3. SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库)
  4. python一些常用方法_python 的一些常用方法
  5. editActionsForRowAtIndexPath(iOS8) tableview编辑(删除、插入、移动)
  6. 从不同解码策略看机器如何生成文本
  7. 力扣题目——700. 二叉搜索树中的搜索
  8. gradle maven_Gradle vs Maven
  9. Python字符串的截取|Python练习题
  10. 关于交换机端口的Trunk和Access模式的分析与验证
  11. android ppt的动画效果怎么做,Android 仿 PPT 进入动画效果合集
  12. 如何0代码快速搭建教育平台,实现线上直播教学【内附源码/Demo】
  13. python词云词频分析_Python数据挖掘:WordCloud词云配置过程及词频分析
  14. edge扩展下载失败或edge报错0x80072ee7
  15. 微信开发-业务域名、JS接口安全域名、网页授权域名
  16. 哪些专业不建议跨考计算机
  17. 黑白棋的设计说明(一)
  18. Python爬虫之实习生面试问题(一) 爬虫实习生 爬虫面试问题
  19. Firewalld的区域(zone)
  20. Android OTA releasekey 替换

热门文章

  1. 10W 赞的程序员高薪职业建议
  2. 拜托!代码有BUG不一定都是程序员的锅
  3. Hepatology | 朱黎琴/于吉洋团队合作揭示新生儿肝脏发育中肝母细胞瘤转移的新机制...
  4. 多序列比对软件Jalview的安装及使用体验
  5. 师弟新作 | NBT:王运浩、区健辉等综述纳米孔测序技术
  6. c语言中转义字符有什么作用,C语言中转义字符有什么作用?
  7. 第十一届蓝桥杯省赛C++组试题 第4题 选择题判定
  8. 5g上行速率怎么提升_揭秘联发科5G独家技术,攻克上行覆盖和终端功耗两大技术难题...
  9. STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量,硬件过采样器实现1024倍过采样
  10. 基于matlab数字识别算法系统设计与实现(含源文件)