当前位置:网站首页>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

边栏推荐
- 基于反步积分滑模摩擦补偿的光电伺服转台控制
- Js - 内置对象
- Dolphinscheduler stand-alone transformation
- 为什么说Prometheus是足以取代Zabbix的监控神器?
- 最基础01/完全背包
- Zhou Hongyi: Microsoft copied the 360 security model and became the largest security company in the United States
- 电脑奔溃的时候,到底发生了什么?
- Based on MySQL database, Redis cache, MQ message middleware, ES high availability scheme of search engine parsing
- 崩了,该来的终究躲不掉
- 【Kaggle比赛常用trick】K折交叉验证、TTA
猜你喜欢

漫谈金丝雀部署(Canary Deployment)

IO/multiplexing (select/poll/epoll)

打破原则引入SQL,MongoDB到底想要干啥???

ModelCoder状态机:对柴油机工况判断策略进行建模

使用百度EasyDL实现明厨亮灶厨师帽识别

企业如何成功完成云迁移?

Using Baidu EasyDL to realize the recognition of the chef's hat of the bright kitchen

13-GuliMall Basics Summary

结合实战,浅析GB/T28181(三)——实况点播

【河北工业大学】考研初试复试资料分享
随机推荐
I built another wheel: GrpcGateway
【记一个kaggle划水比赛】PetFinder.my - Pawpularity Contest 宠物预测
13-GuliMall Basics Summary
Mysql 批量插入事务唯一键重复处理
【CVA估值训练营】如何快速读懂上市公司年报——第五讲
C#实现软键盘的制作
saltstack学习1入门基础
基于空洞补全的动态SLAM方法
Greenplum 6.0有哪些不可错过的硬核升级与应用?
nodeJs--fs模块
Add the device library after Vivado installation
Rust from entry to proficient 02-installation
使用百度EasyDL实现明厨亮灶厨师帽识别
微信视频号视频如何下载提取?视频号直播回放如何下载?方法很简单!
从“校园贷”到“直播带货”,追风少年罗敏一直行走在风口浪尖
手慢无!阿里亿级流量高并发系统设计核心原理全彩笔记现实开源
每天学一点Scala之 伴生类和伴生对象
[PostgreSQL] - explain SQL analysis introduction
[BJDCTF2020]Cookie is so stable-1|SSTI注入
[BJDCTF2020]Cookie is so stable-1|SSTI injection