C语言实现解决汉诺塔问题

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

次数公式:2^n - 1(其中n为圆盘的个数) 。

问题分析:

①:将n-1个圆盘通过空闲的B和C柱进行移动。

②:移动完后确保A柱里面只有一个圆盘,同时C是空闲,将最大的圆盘移动至C柱。

③:通过三个柱,再次进行移动,将次大的盘移动至C柱。

当n为1时:

 当n为2时:

当n为3时:

 a -> c       a -> b        c -> b         a -> c        b -> a        b -> c        a -> c

程序实现:

程序运行:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值