九连环的递归算法,九连环算法(第2版)
九连环简介
九连环游戏是中国人自己发明的,它的历史非常悠久,据说起源于战国时期。九连环主要是由一个框架和九个圆环组成:每个圆环上连有一个直杆,而这个直杆则在后面一个圆环内穿过,九个直杆的另一端用一块木板或圆环相对固定。
九连环规律
- 第 1 环可以自由上下
- 而上/下第 n 环时(n>1),则必须满足:第 n-1 个环在架上;前 n-2 个环全部在架下
拆解/安装的过程
正确的拆解是先以第 9 环为目标,先拆下它,简化为拆一个 8 连环。接着再也第 8 环为目标,拆下它,简化为拆一个 7 连环。以此类推,直至全部拆解。
正确是安装也是以第 9 环为目标,先装上它,简化为装一个 8 连环。接着再也第 8 环为目标,装上它,简化为装一个 7 连环。以此类推,直至全部安装。
递归算法
本算法逻辑适用任意个数的连环问题,于2002年11月6日设计,2006年2月28日修改如下
using namespace std;
class Ring
{
public :
Ring(int Num):RingNum(Num){}
void StartDown();
void StartUp();
private :
int RingNum;
void DownRing(int n);
void UpRing(int n);
};
void Ring::DownRing(int n)
{
if(n>2) DownRing(n-2 );
cout<<"下第"<<n<<"环" ;
if(n>2) UpRing(n-2 );
if(n>1) DownRing(n-1 );
}
void Ring::UpRing(int n)
{
if(n>1) UpRing(n-1 );
if(n>2) DownRing(n-2 );
cout<<"上第"<<n<<"环" ;
if(n>2) UpRing(n-2 );
}
void Ring::StartDown()
{
DownRing(RingNum);
}
void Ring::StartUp()
{
UpRing(RingNum);
}
int main()
{
Ring RingN(9 );
RingN.StartDown();
RingN.StartUp();
return 0 ;
}
2002年九连环算法第1版:中国传统智力游戏--九连环的递归算法(九连环算法第1版)
2006年九连环算法第2版:九连环的递归算法(九连环算法第2版)
2016年九连环算法第3版:九连环算法(第3版)
九连环的递归算法,九连环算法(第2版)相关推荐
- 九连环的递归算法(C和C++)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 九连环的 ...
- 九连环的递回算法(C战C++)
九连环的递回算法(C战 c++ ) 九连环的递回算法 1.九连环简介 九连周 游戏是止您妊旁己创造的,它的汗青十分悠暂,听说是来源于战国期间.九连环次要是由一个框架战九个悦挥蟹组成:每一个 ...
- 《数据结构与算法 C语言版》—— 3.8习题
本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第3章,第3.8节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.8习题 1名 ...
- 算法(第4版)Algorithms, Fourth Edition
作者:[美] Robert Sedgewick,[美] Kevin Wayne 著,谢路云 译 出版社:人民邮电出版社 品牌:iTuring 出版时间:2012-10-01 外文名称:Algorith ...
- 《数据结构与算法 C语言版》—— 2.5上机实验
本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.5节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.5上机实验 实 ...
- 《数据结构与算法 C语言版》—— 2.7习题
本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.7节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7习题 1描 ...
- 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》
文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...
- 算法笔记(JavaScript版)——排序
算法笔记(JavaScript版)--排序 本文内容根据Rebert Sedgewick和Kevin Wayne的<算法(第四版)>整理,原代码为java语言,自己修改为JavaScrip ...
- java单词查找树_Trie 单词查找树 java实现(来自算法第4版)
强烈建议看书上的实现步骤,这里只是一个个人记录. 单词查找树的性能: 查找命中所需的时间与被查找的键的长度成正比.比如单词有7个字符,查找或插入操作最多只需要检查8个节点. 查找未命中只需检查若干个字 ...
最新文章
- 【Android基础】序列化 Serializable vs Parcelable
- 嵌套SQL语句訪问DB2中SQLCA的调用技巧
- linux高可用性,linux – 高可用性Cron Jobs
- php追加记录到文件行首的办法
- php控制器是啥,控制器的定义
- 是什么专业_自考什么专业容易就业
- 安全狗深圳主题沙龙会:企业如何打造云安全堡垒
- InstallShield Premier版本和Professional版本的功能差异
- android 首页布局变换,Android XML布局与View之间的转换
- bzoj 3594: [Scoi2014]方伯伯的玉米田
- 定时任务调度框架实现总结
- 在CSS中clear属性的妙用
- 集成产品开发团队的组成
- python面板数据分析代码_用python预处理面板数据(续)
- asp.net core 系列之并发冲突
- 晶振时钟原理图、PCB设计指南
- SAP FICO 第三节 BDC和LTMC导入S4财务科目
- Webmagic爬虫框架
- 快读快写模板【附O2优化】
- 北京五险一金介绍及公积金领取办法