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

类别:VC语言 点击:0 评论:0 推荐:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

B

 

 

 

 

 

 

C

 

 

 

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

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

本文地址:http://com.8s8s.com/it/it1580.htm