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

现在路飞开始玩汉诺塔游戏, 他放了 n 片黄金圆盘在第一根柱子上,从上到下依次编号为 1 到 n ,1 号圆盘最小,n 号圆盘最大。路飞移动第i 号圆盘的时候需要花费 i 点体力。现在路飞想把圆盘全部移动到第 2​ 根柱子上,移动过程中路飞必须准守游戏规则。

现在路飞想知道他完成游戏的最小移动次数和最少消耗的体力。

输入
输入一个正整数 n(1≤n≤60) 表示黄金圆盘的个数

输出
一行输出 2​ 个数,表示最小移动次数和最小消耗的体力,中间用一个空格隔开。

样例输入1
2
样例输出1
3 4
样例输入2
3
样例输出2
7 11

#include <iostream>
using namespace std;
long long f1(long long n) {if (n == 1) return 1;return f1(n - 1) * 2 + 1;
}
long long f2(long long n) {if (n == 1)return 1;return f2(n - 1) * 2 + n;
}
int main() {int n;cin >> n;cout << f1(n) << " " << f2(n) << endl;return 0;
}

汉诺塔计算移动次数和消耗体力相关推荐

  1. 汉诺塔的移动次数和移动过程

    问题描述 有三根柱子 A B C ,A柱上有 nnn 个圆盘,最大的一个在底下,其余一个比一个小,依次叠上去.将所有在 A 上的圆盘移动到 C ,小盘只能在大盘上面. 计算移动次数 当 n=1n =1 ...

  2. 汉诺塔怎么加计数次数c语言,C语言计算汉诺塔最小移动步数 (二)

    前几天写的:C语言计算汉诺塔最小移动步数(一) 当时还不知道用2^n-1这个公式来求解汉诺塔移动步骤.=_= 偶然间在网上发现了这个公式,发现当时写的算法还是比较繁琐的.所以又根据这个公式又写了一个. ...

  3. c语言汉诺塔移动次数,C语言计算汉诺塔最小挪动步数 (二)

    C语言计算汉诺塔最小移动步数 (二) 前几天写的:C语言计算汉诺塔最小移动步数(一) 当时还不知道用2^n-1这个公式来求解汉诺塔移动步骤.=_= 偶然间在网上发现了这个公式,发现当时写的算法还是比较 ...

  4. 杭电 汉诺塔问题总结

    看了一下杭电的各种汉诺塔问题,遇到些奇奇葩葩的小问题,也有很多很好的思想,比如最后一题,来来回回的颠倒很有意思.总结一下: Pro.ID 1207 :http://acm.hdu.edu.cn/sho ...

  5. 手撕“汉诺塔算法”之详细图解

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿, 今天和大家分享一个递归经典算法案例---"汉诺塔". 汉诺塔问题回顾 汉诺塔(Tower of Hanoi)源于印度传说 ...

  6. nyoj 汉诺塔(一)

    汉诺塔(一) 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片 ...

  7. nyoj 88 汉诺塔一

    一直比较纠结汉诺塔具体怎么移动的,今天终于鼓足勇气查了一下.... 算法介绍: 其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n – 1(有兴趣的可以自己证明试试看).后来一位美国学者(那 ...

  8. 汉诺塔相关介绍及计算

    汉诺塔的相关题目及计算 汉诺塔的相关介绍及分析 简介 经典汉诺塔 求最小移动次数 汉诺塔的相关介绍及分析 简介 前两天无意中提到了汉诺塔就重新刷了一下相关的题目,感觉有些题目有很多巧妙之处,提到汉诺塔 ...

  9. 7-251 汉诺塔问题7-252 汉诺塔移动次数

    目录 7-251 汉诺塔问题 7-252 汉诺塔移动次数 7-251 汉诺塔问题 分数 100 全屏浏览题目 切换布局 作者 于延 单位 哈尔滨师范大学 任务描述 在印度,有这么一个古老的传说:在世界 ...

最新文章

  1. seaborn将图例放置在图像外部并使用move_legend函数将图例(legend)放置在图像的顶部top(多组图例)
  2. 给自己提个醒:关于document.getElementsByName无法获取非表单元素
  3. 使用Zookeeper实现leader选举-Leader Latch
  4. c语言学生成绩查询系统2018,南昊网上阅卷学生成绩查询系统
  5. 【CVPR2019】论文完整列表一
  6. Mac上http/POST/PUT/GET/DELETE请求工具-ApiPost Client for Mac 2.0.2.dmg
  7. Mysql中default分区,MySQL中的分区(六)KEY分区
  8. windows “文件大小”与“占用空间”、文件系统与文件拷贝
  9. 超大背包问题(折半枚举, 双向搜索)
  10. 总结XMLHttpRequest对象
  11. JAVA学习之网络编程UDP篇
  12. Python单元测试框架——unittest
  13. ps怎么加底部阴影_PS给物体底部加阴影
  14. Ajax传递二维数组至后台ThinkPHP控制器
  15. 《皮囊》——蔡崇达,读后感
  16. 今日头条后台岗位实习面试记录
  17. 基于ZYNQ的嵌入式学习笔记四(矩阵键盘实现电子琴)
  18. 极其简单的Python爬虫音乐
  19. Pyside2 学习系列三:PyInstaller打包项目瘦身(超详细的Pyside2 攻略)
  20. 第二天就能练起来的技能:真北直播回顾,及KOL讲师、海报设计师招募

热门文章

  1. 第一篇:对Adaboost和GBDT的学习
  2. Qt从入门到放弃_0x01:建立项目
  3. javaScript面向对象是什么?(一)
  4. 2-27 最短路径《啊哈算法》2-28完成四种算法
  5. 每日编程-20170326
  6. 【转载】理解矩阵(一)
  7. [软件工程学习笔记]浅谈敏捷开发
  8. Convert、Parse、TryParse、(int)等区别(细节小记)
  9. MySql 你知道事务隔离是怎么回事吗?
  10. Flutter Provider 异步通信、Provider状态管理