`
youngerblue
  • 浏览: 44167 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

常见程式演算(汉诺塔)

阅读更多
河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小 至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当 盘子全数搬运完毕之时,此塔将毁损,而也就是世界末日来临之时。
import java.io.*;

public class Hanoi {
    public static void main(String args[]) throws IOException {
        int n;
        BufferedReader buf;
        buf = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("请输入盘数:");
        n = Integer.parseInt(buf.readLine());

        Hanoi hanoi = new Hanoi();
        hanoi.move(n, 'A', 'B', 'C');
    }

    public void move(int n, char a, char b, char c) {
        if(n == 1)
            System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
        else {
            move(n - 1, a, c, b);
            System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
            move(n - 1, b, a, c);
        }
    }
} 
分享到:
评论

相关推荐

    常见程式演算笔记.rar

    "常见程式演算笔记.rar" 是一个压缩包文件,它包含了一系列关于程式设计的练习题目,旨在帮助学习者提升程式设计逻辑思维。这些题目涵盖了多种常见的程式演算问题,通过解决这些问题,你可以深入理解程式设计的基本...

    java实现汉诺塔演示及手动操作汉诺塔

    汉诺塔是一个经典的递归问题,...通过阅读代码,我们可以看到如何将理论的汉诺塔算法与Java GUI编程结合在一起,实现了一个交互式的汉诺塔游戏。这对于学习Java编程、递归算法以及图形用户界面设计都是很好的实践案例。

    flash小游戏汉诺塔-Flash文档类资源

    汉诺塔(Hanoi Tower)是一款经典的逻辑游戏,源自19世纪由法国数学家艾德蒙·洛卡特(Edouard Lucas)提出的数学问题。它通常由三根圆柱和一堆不同大小的圆盘组成,玩家的目标是将所有圆盘从一根柱子移动到另一根...

    flash小游戏汉诺塔

    汉诺塔(Hanoi Tower)是一款经典的逻辑益智游戏,起源于19世纪末的法国,由数学家爱德华·卢卡斯提出。在这个游戏中,有三根柱子和一堆大小不一的圆盘,起初都堆在第一根柱子上,按照从大到小的顺序自下而上排列。...

    简单的汉诺塔html网页游戏

    汉诺塔游戏是一种基于递归算法的经典逻辑游戏,源自印度古老传说,由法国数学家爱德华·卢卡斯在19世纪末正式提出。在这个简单的汉诺塔HTML网页游戏中,玩家将体验到如何通过一系列合法移动将全部圆盘从一根柱子...

    汉诺塔 源代码 -汉诺塔小程序

    ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码---

    汉诺塔问题的拓展 四柱汉诺塔

    算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码

    实验八_VRML3-1移动汉诺塔

    汉诺塔(Hanoi Tower)是一个经典的数学游戏,通常用三根柱子和一堆不同大小的盘子来演示。在VRML(Virtual Reality Modeling Language,虚拟现实建模语言)中,我们可以利用其3D场景构建能力来模拟这个游戏。VRML是...

    flash 3.0汉诺塔:小游戏

    汉诺塔(Hanoi Tower)是一款经典的逻辑游戏,它源于印度的一个传说,旨在通过移动盘子来演示一个看似简单但实则复杂的问题解决过程。在Flash AS 3.0环境中,我们可以利用ActionScript这一强大的脚本语言来创建交互...

    汉诺塔演示程序(包含二叉树的演示动画)

    汉诺塔演示程序结合了二叉树的演示动画,为学习和理解这两种计算机科学基础知识提供了一个生动直观的方式。首先,我们来深入探讨一下汉诺塔问题及其解决方案。 汉诺塔是一个经典的递归问题,由三个柱子和一堆大小...

    C经典算法之双色汉诺塔

    ### C经典算法之双色汉诺塔 #### 双色汉诺塔算法解析 双色汉诺塔(Two-color Hanoi Tower)是基于传统汉诺塔游戏的一种变体。传统汉诺塔游戏由三个柱子及不同大小的圆盘组成,玩家的目标是将所有圆盘从初始柱子...

    经典算法(常见程式演算)

    "经典算法(常见程式演算)"这个主题涵盖了从基础到高级的各种算法,旨在帮助开发者深入理解数据结构与算法,提高编程能力。C++和Java是两种广泛使用的编程语言,它们在实现算法时具有不同的优势,C++以其高效和低...

    Scratch高级创意编程 Scratch汉诺塔游戏实现 少儿图形化编程案例源程序

    Scratch汉诺塔创意编程源程序汉若塔:由4-8个不同积木块和3根柱子组成游戏规则:1、一次只能移一个积木(柱子最上面)2、积木只能在三个柱子上存放3、任何时刻不允许大的压小的案例完美的诠释了什么是汉诺塔游戏,...

    C#汉诺塔非递归

    汉诺塔是一个经典的计算机科学问题,它源自印度的传说,要求将一堆盘子从一根柱子移动到另一根柱子,遵循以下规则:每次只能移动一个盘子,并且任何时候大盘子都不能位于小盘子之上。在C#中,解决汉诺塔问题通常采用...

    汉诺塔游戏 Python源代码

    汉诺塔是传统的智力游戏,与华容道、魔方等类似。这是汉诺塔游戏的Python源代码,使用了基本的递归方式实现汉诺塔求解问题。 欢迎大家下载。

    java实现界面-汉诺塔

    汉诺塔是一个经典的递归问题,它源自印度的古老传说,涉及将一组圆盘从一根柱子移动到另一根柱子,遵循以下规则: 1. 每次只能移动一个圆盘。 2. 任何时候大盘子都不能位于小盘子之上。 在Java中实现汉诺塔的界面...

    汉诺塔模拟程序 汉诺塔模拟程序 汉诺塔模拟程序

    汉诺塔模拟程序是一种基于Java语言的编程任务,旨在帮助学生深入理解和应用数据结构、算法以及GUI设计。这个课程设计的主要目标是通过实现汉诺塔问题的解决方案,提高学生的编程技能,尤其是对Java语言的理解和实际...

    多柱汉诺塔问题研究论文

    ### 多柱汉诺塔问题研究 #### 引言与背景 汉诺塔问题作为一种经典的数学游戏,由法国数学家爱德华·卢卡斯在1883年提出。传统汉诺塔问题包含三个柱子及多个不同大小的圆盘,玩家的目标是将所有圆盘按照一定规则从...

    汉诺塔游戏 含源代码及图形化界面

    汉诺塔游戏是一种经典的逻辑谜题,源自19世纪的法国,由数学家艾德蒙·洛卡特提出。这个游戏的目标是将一个柱子上的所有盘子,通过另外两个柱子作为辅助,按照大小顺序从底部移动到顶部。在移动过程中,任何时候都不...

Global site tag (gtag.js) - Google Analytics