汉诺塔(C语言)

一、什么是汉诺塔问题?

汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

汉诺塔柱子标示

二、实现步骤

 先来简单介绍一下实现步骤,如图,我们要把A柱中的三个圆盘移置C柱。

 

 这时我们可以借助B柱,我们将圆盘1先移动到C柱,再将圆盘2移动到B柱,因为大的圆盘要放在下面,所以我们把C柱中的圆盘1移动到B柱上。再把A柱上的圆盘3放到C柱。

最后将B柱上的圆盘1和2分别移动到A柱和C柱,再将A柱上的1移动到C柱。那么三阶汉诺塔的移动就完成了。

 三、代码实现

我们这里使用函数递归的方式实现,先建立主程序,确定怎么使用这个函数。

 然后建立函数

 四、代码分析

下面我们来分析一下当n等于3时的步骤

 圆盘移动步骤:

n=3

 n=4


以上就是我总结的汉诺塔问题,如果对你有帮助记得点赞、关注哦!

如果文章中有错误或者有更好的写法,记得在评论区评论,欢迎学习指点。

更多内容请移步个人博客:乌托邦

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值