猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

最近上映的《猩球崛起3》,大家都去看过了吗?第三部电影依旧延续前两部剧情,从人类研发治疗老年痴呆症新药开始,到猩Baby凯撒身上试验得到印证,不仅治愈人类长期以来的衰老疾病,并且新药还有一个特别明显的特征,凡是使用过后,都变得特别的聪明,也显示出非常高的智商。

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

比如,凯撒在十八个月时,就已经学会手语,在两岁时,就能完成为八岁孩子设计的模型游戏,完成汉诺塔游戏只需要15步(满分)!

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

这个来自印度一个古老传说的益智游戏,既适合动手能力强的人玩,还能打发闲暇无聊的时光,关键的是,该游戏还能启发人的创意创造能力。

游戏规则很简单,那就是:

1.一次只能移动一个圆盘;

2.大圆盘只能在小圆盘下面;

最终,所有圆盘从一个柱子移到另一个柱子就算成功。

PS:有预言说,当这个游戏完成的时候,世界在一瞬间就坍塌了,您信吗?

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

(四片汉诺塔玩法,没玩过的多看几遍动图~)

据说,现在已经有具体的实例可以实现汉诺塔游戏,以下演示运用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驱动深度开发)

马上扫描下方二维码

或点击“阅读原文”

快到发烧友学院“碗”里来吧!

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?

猩球里凯撒完成汉诺塔仅需15步,想知道是如何实现的吗?