汉诺塔详解
来源:互联网 发布:官职 知 编辑:程序博客网 时间:2024/06/10 13:55
汉诺塔一个有趣的游戏,递归算法的经典题目。题目不在赘述。
思路:
- 将n-1个圆盘(除最大的圆盘外)从柱子a移到b。
- 将最大的圆盘从柱子a移动到柱子c。
- 将柱子b上n-1圆盘从柱子b移动到c。
1,3 方法一致,都是利用辅助柱子移动圆盘
#include<stdio.h>void han(int n,char a, char b, char c){if(n==1)printf("move %d disk from %c to %c\n",n,a,c);else{han(n-1,a,c,b);printf("move %d disk from %c to %c\n",n,a,c);//关键点,利用栈思想来理解。han(n-1,b,a,c);}}int main(){int N;char A, B,C; scanf("%d%c%c%c",&N,&A,&B,&C); han(N,'A','B','C'); return 0;}
测试几组数据就会发现 当N为偶数时顺时针移动 A B C, 当N为奇数时顺时针移动 A C B.
0 0
- 汉诺塔详解
- 汉诺塔的递归详解
- 汉诺塔问题详解 (递归)
- 汉诺塔问题详解 (递归)
- 算法 汉诺塔-java详解
- 算法详解--汉诺塔
- 汉诺塔(hanoi)详解
- 详解
- 详解
- 详解
- 详解
- &,&&,|,||详解
- 详解
- hdu 汉诺塔问题详解 思维问题
- 递归详解(斐波拉契和汉诺塔应用)
- Scala详解--------基础知识详解
- Spring详解-----------事务详解
- github 详解详解
- 创建一个新的 UNDO 表空间,并使用它。
- JDBC--使用DAO工厂模式(代码超经典)
- nano编辑器的使用
- Structs2 result
- ASP.NET的工作
- 汉诺塔详解
- 写点东西
- xmpp 图片、音频
- C# 操作 XML
- Google Geocoding API(地址解析)
- ios 企业应用是否给用户用?http://mobiledan.net/2012/09/08/can-ios-enterprise-apps-be-used-by-customers/
- Spring --- java定时器,Spring定时器和Quartz定时器
- 近几年行人检测文章推荐
- 中缀转后缀