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

边栏推荐
- saltstack学习2grains&pillar
- dolphinscheduler添加hana支持
- dbaplus丛书丨《MySQL DBA工作笔记》限量签名版来了!
- IO/multiplexing (select/poll/epoll)
- JS事件参数对象event
- MySQL【排序与分页】
- 解码Redis最易被忽视的CPU和内存占用高问题
- ECCV 2022 | 新加坡国立大学提出:全新可恢复型模型遗忘框架LIRF!
- Dry Goods Sharing: Various Implementation Methods of Bean Management Factory with Great Use of Small Skills
- datax开启hana支持以及dolphinscheduler开启datax任务
猜你喜欢
![[SCTF2019]Flag Shop](/img/26/20e21ec873f41f2633703216453a44.png)
[SCTF2019]Flag Shop

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

Decoding Redis' most overlooked high CPU and memory usage issues

A tutorial on how to build a php environment under win

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

MySQL查询性能优化

PyQt5快速开发与实战 8.2 绘图 && 8.3 QSS的UI美化

PyQt5快速开发与实战 8.4 设置窗口背景 && 8.5 不规则窗口的显示

Zhou Hongyi: Microsoft copied the 360 security model and became the largest security company in the United States

unity对象池(学习)
随机推荐
dolphinscheduler添加hana支持
如何将EasyCVR平台RTSP接入的设备数据迁移到EasyNVR中?
13-GuliMall Basics Summary
[BJDCTF2020]Cookie is so stable-1|SSTI injection
看了这些6G原型样机,我想一觉睡到2030年
PyQt5快速开发与实战 8.2 绘图 && 8.3 QSS的UI美化
[PostgreSQL] - explain SQL分析介绍
湖仓一体电商项目(一):项目背景和架构介绍
Dry Goods Sharing: Various Implementation Methods of Bean Management Factory with Great Use of Small Skills
【Kaggle比赛常用trick】K折交叉验证、TTA
数字化时代,寻求企业财务转型路径的最优解
智能指针实现猜想
Another blast!Ali's popular MySQL advanced collection is open source, reaching P7
Mysql 批量插入事务唯一键重复处理
CMake库搜索函数居然不搜索LD_LIBRARY_PATH
私有化部署的即时通讯平台,为企业移动业务安全保驾护航
Rust 从入门到精通02-安装
结合实战,浅析GB/T28181(三)——实况点播
基于空洞补全的动态SLAM方法
Hand tearing read-write lock performance test