这类题目就是纸上模拟,找规律

问题描述:在一块铜板上有三根杆,目的是将最左边杆上的盘全部移到右边的杆上,条件是不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面

问:现在有N个圆盘,她至少多少次移动才能把这些圆盘从最左边移到最右边?

纸上模拟:模拟之后发现将圆盘从左移动到中间的次数=从中间移到右边=1/2从左边移到右边次数

f(n)表示至少n次移动才能把这些圆盘从最左边移到中间    a(n)表示第n个圆盘移动的次数

当n=1时,f(1)=1    a(1)=1

当n=2时,f(2)=4     a(1)=3   a(2)=1

当n=3时,f(3)=13    a(1)=9   a(2)=3   a(3)=1

规律:a(n)呈现以3为公比的等比数列,f(n)为等比数列的和

所以:从左边移到中间需:s(n)=(3^n-1)/2;

从左边移到右边需:s(n)=(3^n-1);

代码:

#include<iostream>
using namespace std;
int main()
{int n;while(cin>>n){long long sum=1;for(int i=0;i<n;i++)sum=sum*3;sum=sum-1;cout<<sum<<endl;}
}

View Code

转载于:https://www.cnblogs.com/Aiahtwo/p/10460535.html

汉诺塔问题hdu 2065——找规律相关推荐

  1. 汉诺塔III HDU - 2064

    汉诺塔III HDU - 2064 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘全部移到右边的 ...

  2. 汉诺塔问题——“分步和”的规律(一种全新的理解)

    汉诺塔是一个经典问题,相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏.该游戏是在一块铜板装置上,有三根杆(编号A.B.C),在A杆自下而上.由大到小按顺序放置n个金盘.游戏的目标:把A杆上 ...

  3. 汉诺塔问题 hdu 2064 hdu1997

    hdu 1997汉诺塔 题目分析: 转自:http://lcc3536.blog.163.com/blog/static/132469917201132283640123/ 1)  最初我们要判断一下 ...

  4. 汉诺塔 X HDU - 2511

    题目: 1,2,-,n表示n个盘子.数字大盘子就大.n个盘子放在第1根柱子上.大盘不能放在小盘上.在第1根柱子上的盘子是a[1],a[2],-,a[n]. a[1]=n,a[2]=n-1,-,a[n] ...

  5. 汉诺塔python创新设计_递归经典案例汉诺塔 python实现

    最近在廖雪峰大神的教程学习python 学到递归的时候有个汉诺塔的练习,汉诺塔应该是学习计算机递归算法的经典入门案例了,因此本人以为能够写篇博客来表达一下本身的看法.这markdown编辑器还不怎么会 ...

  6. 【恋上数据结构】递归(函数调用过程、斐波那契数列、上楼梯、汉诺塔、递归转非递归、尾调用)

    递归(Recursion) 什么是递归? 函数的调用过程(栈空间) 函数的递归调用过程 递归实例分析(1 + 2 + 3 + ... + 100 的和) 递归的基本思想.使用套路 斐波那契数列 fib ...

  7. python面向过程实践汉诺塔_递归汉诺塔-和递归汉诺塔相关的内容-阿里云开发者社区...

    多柱汉诺塔最优算法设计探究 多柱汉诺塔最优算法设计探究 引言 汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究.最简单的汉诺塔是三个柱子(A.B.C),因 ...

  8. 算法 - 递归实现汉诺塔(The Tower of Hanoi)

    目录 引言: 分析: 分析两片汉诺塔的迁移过程: 分析三片汉诺塔的迁移过程: 代码实现: 递归出口: 递归过程: 完整程序代码: 运行结果: 参考资料:​​​​​ 引言: 今天接触到了一个非常有意思的 ...

  9. c#语言编写汉诺塔游戏,c# 实现汉诺塔游戏

    汉诺塔游戏一旦掌握了规律,其实是有点单调和无聊的,不过却是学习递归的一个绝佳例子,想当初学习老谭C的时候,就卡在这儿好长时间. 对初学编程的人来说,递归本身就不易理解,如果使用C语言没有好的调试环境就 ...

最新文章

  1. 实战:使用Nginx限流
  2. c6011取消对null指针的引用_C++中的野指针及其规避方法
  3. 震惊!html文件注释也会影响运行代码!(werkzeug.routing.BuildError: Could not build url for endpoint)莫名其妙
  4. 《信息学奥赛一本通》回文数(Noip 1999)
  5. JSON –拯救杰克逊
  6. 博主推荐【文件Hash校验工具V1.0 -免费版】
  7. object-c中对文件和url操作
  8. jquery 找不到live方法解决
  9. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
  10. SAP License:雾里看花系列——SAP应用应该更关注业务过程
  11. 磁盘分区需要知道的概念
  12. [Android学习笔记]startActivityForResult和onActivityResult的使用
  13. 时序图(Sequence Diagram)—UML图(六)
  14. include 头文件循环引用问题
  15. python安装第三方库太慢,很容易失败报错?教你如何提速
  16. 如何在Mac上裁剪图片,教你几个技巧
  17. 谷歌邮箱lmap服务器填什么_解决Gmail的imap收发邮件无法连接服务器的问题
  18. MySQL中rank函数的使用
  19. C语言实现Base64编解码(加密和解密)
  20. php中md5加密函数怎么用,用PHP写的MD5加密函数

热门文章

  1. boost::hana::Comparable用法的测试程序
  2. boost::hana::greater_equal用法的测试程序
  3. boost::hana::is_a用法的测试程序
  4. Boost.Flyweight 复合设计示例
  5. GDCM:获取序列超声的测试程序
  6. GDCM:模板空白图片的测试程序
  7. ITK:创建3D体积
  8. ITK:创建一个点集
  9. VTK:绘图之BoxChart
  10. VTK:模型之DiscreteMarchingCubes