经典算法之河内之塔

来源:互联网 发布:淘宝网今日特价女装 编辑:程序博客网 时间:2024/04/30 07:35

引用:http://blog.163.com/j_yy2008/blog/static/172637309201122845125167/

            http://www.cnblogs.com/li-peng/p/3303349.html

            http://blog.csdn.net/u011131296/article/details/9185481
            http://blog.csdn.net/xujinsmile/article/details/8091738    (包含扩展部分,很不错的参考)


代码如下:


计算移动次数:

如果要计算一共移动了多少次,找出规律即可。

假设移动n个盘子需要移动f(n)次,所以把n-1个盘子移动到b柱子上,需要移动f(n-1)次,然后把第n个盘子移动到c柱子上,需要移动1次,最后把n-1个盘子移动到c柱子上,需要移动f(n-1)次,综上所述,一共移动了

                       f(n) = 2 f(n-1) + 1

  而:

  f(1) = 1;

  f(2) = 2*1+ 1;

  f(3) = 2(2*1+ 1)+ 1;

  .......

  f(n) = 2^n -1














0 0
原创粉丝点击