当前位置:网站首页>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
边栏推荐
- 什么是驱动程序签名,驱动程序如何获取数字签名?
- A tutorial on how to build a php environment under win
- Zhou Hongyi: Microsoft copied the 360 security model and became the largest security company in the United States
- 即时通讯-改变社交与工作状态的新型软件
- Js - 内置对象
- 云主机上的MongoDB被威胁,开启AUTH认证
- Why is Prometheus a monitoring artifact sufficient to replace Zabbix?
- Breaking the principle and introducing SQL, what does MongoDB want to do???
- IO/multiplexing (select/poll/epoll)
- PyQt5快速开发与实战 8.4 设置窗口背景 && 8.5 不规则窗口的显示
猜你喜欢
13-GuliMall Basics Summary
Win11打不开exe应用程序怎么办?Win11无法打开exe程序解决方法
nodeJs--fs模块
北上广线下活动丨年底最不可错过的技术聚会都齐了
Unity Beginner 6 - Simple UI production (blood bar production) and audio addition and NPC dialogue bubbles (2d)
关于香港高防IP需要关注的几个问题
亚洲高校首现KDD博士论文奖:清华裘捷中获Runner Up奖,WINNER奖也是位华人
dbaplus丛书丨《MySQL DBA工作笔记》限量签名版来了!
云主机上的MongoDB被威胁,开启AUTH认证
Why is Prometheus a monitoring artifact sufficient to replace Zabbix?
随机推荐
Another blast!Ali's popular MySQL advanced collection is open source, reaching P7
grep时排除指定的文件和目录
ModelCoder状态机:对柴油机工况判断策略进行建模
Xms Xmx PermSize MaxPermSize 区别
What happened when the computer crashed?
双击Idea图标打不开——解决办法
[BJDCTF2020]Cookie is so stable-1|SSTI injection
Mysql batch insert transaction unique key repeated processing
Decoding Redis' most overlooked high CPU and memory usage issues
Kubernetes之本地存储
腰部外骨骼机器人线性自抗扰控制器参数优化
CMake库搜索函数居然不搜索LD_LIBRARY_PATH
基于反步积分滑模摩擦补偿的光电伺服转台控制
Apifox generates interface documentation tutorial and operation steps
展厅全息投影所具备的三大应用特点
看了这些6G原型样机,我想一觉睡到2030年
Unity Beginner 6 - Simple UI production (blood bar production) and audio addition and NPC dialogue bubbles (2d)
大手笔!两所“双一流”大学,获75亿元重点支持!
Anaconda\Scripts\pip-script.py is not present ? 解决方案
nodeJs--fs模块