猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?
最近上映的《猩球崛起3》,大家都去看过了吗?第三部电影依旧延续前两部剧情,从人类研发治疗老年痴呆症新药开始,到猩Baby凯撒身上试验得到印证,不仅治愈人类长期以来的衰老疾病,并且新药还有一个特别明显的特征,凡是使用过后,都变得特别的聪明,也显示出非常高的智商。
比如,凯撒在十八个月时,就已经学会手语,在两岁时,就能完成为八岁孩子设计的模型游戏,完成汉诺塔游戏只需要15步(满分)!
这个来自印度一个古老传说的益智游戏,既适合动手能力强的人玩,还能打发闲暇无聊的时光,关键的是,该游戏还能启发人的创意创造能力。
游戏规则很简单,那就是:
1.一次只能移动一个圆盘;
2.大圆盘只能在小圆盘下面;
最终,所有圆盘从一个柱子移到另一个柱子就算成功。
PS:有预言说,当这个游戏完成的时候,世界在一瞬间就坍塌了,您信吗?
(四片汉诺塔玩法,没玩过的多看几遍动图~)
据说,现在已经有具体的实例可以实现汉诺塔游戏,以下演示运用Java实现经典的汉诺塔算法:
/*
author by w3cschool.cc
MainClass.java
*/
public class MainClass {
public static void main(String[] args) {
int nDisks = 3;
doTowers(nDisks, ‘A’, ‘B’, ‘C’);
}
public static void doTowers(int topN, char from,
char inter, char to) {
if (topN == 1){
System.out.println(“Disk 1 from ”
+ from + “ to ” + to);
}else {
doTowers(topN - 1, from, to, inter);
System.out.println(“Disk ”
+ topN + “ from ” + from + “ to ” + to);
doTowers(topN - 1, inter, from, to);
}
}
}
以上代码运行输出结果为:
Disk 1 from A to C
Disk 2 from A to B
Disk 1 from C to B
Disk 3 from A to C
Disk 1 from B to A
Disk 2 from B to C
Disk 1 from A to C
发烧友学院与韦东山团队倾力打造
从0到1助您完成Android系统开发高级工程师转变!
(课程包含三部分:Java快速入门、C++快速入门、Android驱动深度开发)
马上扫描下方二维码
或点击“阅读原文”
快到发烧友学院“碗”里来吧!
- 地条钢清零 "十三五"去产能任务有望提前完成
- 菏泽新增100辆新能源公交车 6条线路完成开通
- 黑龙江省医疗队圆满完成援非“光明行”任务 做300余例白内障手术
- 西部首例折叠式人工玻璃体球囊眼内植入术在西安完成
- 北京完成67项考古发掘 面积相当于9个足球场
- 重庆:明年完成市区3万户居民供水改造
- 【权健】五级梯队框架已搭建完成 权健青训符合足协新规
- 渝中区开展四大提升行动 本月底完成30项重点整治
- 新手学会堆肥只需要几个步骤,收集材料到完成堆肥的全过程
- 【壮凌自动化冠名】三井化学在中国的电解溶液设施完成产能扩充