当前位置:网站首页>C语言学习练习题:汉诺塔(函数与递归)
C语言学习练习题:汉诺塔(函数与递归)
2022-07-30 12:33:00 【51CTO】
问题描述:
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于 印度古老传说的 益智玩具。 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令 婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
问题(图文)分析:
初始状态:以三个圆盘为例,圆盘1,2,3最初都放置在A柱上面,先要将1,2,3按照规则移动到C柱上。

移动步骤:
(1)1:A->C

(2)2:A->B

(3)1:A->B

(4)3:A->C

(5)1:B->A

(6)2:B->C

(7)1:A->C

递归思路:
首先将2和1看成是一个整体,将该整体移动到B柱(借助C柱),然后将3移动到C柱;之后将1移动到A柱(借助C柱),将2移动到C柱;最后将1移动到C柱。如图:

推导到n个圆盘:
先将1第n-1个圆盘看成是一个整体,将其通过C移动到B,然后将第n个移动到C;然后再将1第n-2个圆盘看成是一个整体,将其通过你C移动到A,然后将第n-1个移动到C......以此类推,如下:





程序描述:
主函数:

自定义函数1
void Hanno(int n, char a, char b, char c)
函数功能:将a柱上面的n个圆盘移动到c柱上面。

自定义函数2
void Move(int i, char a, char b)
函数功能:描述将第i个圆盘从a柱移动到b柱

代码运行结果
n=1

n>=1

边栏推荐
- 基于DoS攻击能量分级的ICPS综合安全控制与通信协同设计
- 【记一个kaggle划水比赛】PetFinder.my - Pawpularity Contest 宠物预测
- 解码Redis最易被忽视的CPU和内存占用高问题
- 初级永磁直线电机双动子电流镜像容错控制
- 浅析TSINGSEE智能视频分析网关的AI识别技术及应用场景
- Homework 7.29 correlation function directory and file attributes related functions
- 基于反步积分滑模摩擦补偿的光电伺服转台控制
- dolphinscheduler单机化改造
- Mysql batch insert transaction unique key repeated processing
- 历时两月,终拿字节跳动offer,算法面试题分享「带答案」
猜你喜欢

Why is Prometheus a monitoring artifact sufficient to replace Zabbix?

【语音识别】基于GMM-HMM的语音识别系统

Yilian: Activating the Value Potential of Data Elements and Unleashing the Innovation Dividend of SAS SSD

AlphaFold预测了几乎所有已知蛋白质!涵盖100万物种2.14亿结构,数据集开放免费用...

【Kaggle:UW-Madison GI Tract Image Segmentation】肠胃分割比赛:赛后复盘+数据再理解

和数集团:让智慧城市更智慧,让现实生活更美好

JD.com was brutally killed by middleware on two sides. After 30 days of learning this middleware booklet, it advanced to Ali.

nodeJs--fs模块

什么是驱动程序签名,驱动程序如何获取数字签名?

Apifox generates interface documentation tutorial and operation steps
随机推荐
在 Scala 中读取整个文件
【MySQL系列】-B+树索引和HASH索引有什么区别
JS事件参数对象event
unity初学6——简易的UI制作(血条制作)和音频加入以及NPC的对话气泡(2d)
unity对象池(学习)
AlphaFold预测了几乎所有已知蛋白质!涵盖100万物种2.14亿结构,数据集开放免费用...
saltstack学习2grains&pillar
【CVA估值训练营】如何快速读懂上市公司年报——第五讲
A tutorial on how to build a php environment under win
来n遍剑指--04. 二维数组中的查找
腰部外骨骼机器人线性自抗扰控制器参数优化
【Kaggle比赛常用trick】K折交叉验证、TTA
力扣——15. 三数之和
基于反步积分滑模摩擦补偿的光电伺服转台控制
浅析TSINGSEE智能视频分析网关的AI识别技术及应用场景
CMake库搜索函数居然不搜索LD_LIBRARY_PATH
Greenplum 6.0有哪些不可错过的硬核升级与应用?
关于香港高防IP需要关注的几个问题
爱可可AI前沿推介(7.30)
Xms Xmx PermSize MaxPermSize 区别