汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上(可以借助第三根柱子做缓冲)。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
如图【1.jpg】是现代“山寨”版的该玩具。64个圆盘太多了,所以减为7个,金刚石和黄金都以木头代替了......但道理是相同的。
据说完成大梵天的命令需要太多的移动次数,以至被认为完成之时就是世界末日!
你的任务是精确计算出到底需要移动多少次。
很明显,如果只有2个圆盘,需要移动3次。
圆盘数为3,则需要移动7次。
那么64个呢?
答案写在“解答.txt”中,不要写在这里!
呵呵 想了好一会才发现这其实是个数字游戏,题目里的很多信息都没大用
1 2 3 4 。。。。
1 3 7 15。。。。
仔细看看这俩组数据就会发现,下一个结果是前一个结果乘2加1,问题解决了。
还有就是大数据问题,结果是一个很大的数据,int类型无法表示,我用的double
也可以用Biginteger来解决。
public class demo03 {
public static void main(String arg[]){
double m=0;
for(int i=1;i<=64;i++){
m=m*2+1;
}
System.out.println(m);
}
}
答案:1.8446744073709552E19
分享到:
相关推荐
汉诺塔——经典的递归 *实现移动函数 *递归实现汉诺塔函数
JAVA图形界面程序——汉诺塔演示程序代码
利用A,B,C三个柱子移盘子,使小盘子在上大盘子在下。
C语言实现汉诺塔、递归。初学者,谢谢
代码在文档最后,需要自取,基于python开发的汉诺塔动态演示,用了turtle库,在pycharm编辑器下开发的。
一个经典的递归程序,该程序很简单很清楚,让C++初学者来很好地理解递归的含义。
汉诺塔问题汉诺塔问题汉诺塔问题汉诺塔问题汉诺塔问题汉诺塔问题
多柱汉诺塔问题研究 by 清华大学计算机科学与技术系 刘铎 戴一奇
任意输入N个盘,在三个柱子上实现汉诺塔问题的非递归求解,用栈进行
算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码
利用状态空间法对汉诺塔定义状态,用广度优先的方法解决汉诺塔问题,人工智能.(属于学校学习课程所做,非商业内容)
本资源为C语言代码实现的汉诺塔演示实验,使用了C语言的图形图像编写,加载了汉字字库
---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码---
汉诺塔问题C/C++;解决汉诺塔问题的算法;递归
汉诺塔变形问题 .doc汉诺塔变形问题 .doc汉诺塔变形问题 .doc汉诺塔变形问题 .doc汉诺塔变形问题 .doc汉诺塔变形问题 .doc
双色汉诺塔是由之前所介绍过的汉诺塔规则衍生而来。 盘子的颜色有两种
C++语言递归算法求解原始汉诺塔问题,邻近移动汉诺塔问题,循环移动汉诺塔问题,奇偶汉诺塔问题
汉诺塔问题
在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好...故汉诺塔问题又被称为“世界末日问题。”
汉诺塔问题 java解决方案汉诺塔问题 java解决方案汉诺塔问题 java解决方案