数据结构学习(C++)——递归【2】(3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

B

 

 

 

 

 

 

C

 

 

 

显而易见的,转换当前柱为B,把6号盘子搬到C。由此可得出(规律3):假设当前的问题规模为n,搬动第n个盘子到C后,问题规模减1,当前柱转换到另一个柱子,最下面的盘子的目标柱为C

综上,我们已经把这个问题解决了,可以看出,关键是如何确定当前柱需要移动多少盘子,这个问题请大家自己考虑,给出如下例程,因为没有经过任何优化,本人的编码水平又比较低,所以这个函数很慢——比递归的还慢10倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值