迭代的经典算法
package com.acxiom.ejbws.test;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;
/**@Author rainwu
*@Version 2011-9-28
*/
public class Hanio {
public static void main(String[] args) throws NumberFormatException, IOException {
System.out.println("Begin...");
// BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please input the number of tower:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// int n = Integer.parseInt(bReader.readLine());
System.out.println("The num is:" +n);
Hanio.move(n, 'A', 'B', 'C');
System.out.println("End...");
}
public static void move(int n,char fromTower,char toTower,char midTower){
if(n<1){
System.out.print("The condition is not meet");
}else if(n==1){
System.out.println(fromTower + "--->" + toTower);
}else{
move(n-1,fromTower, midTower, toTower );
System.out.println(fromTower + "--->" + toTower);
// move disk n from the fromTower to the toTower;
move(n-1,midTower, toTower, fromTower);
}
}
}
分享到:
相关推荐
hanio塔的c语言实现,经过体验这个代码能充分理解递归的含义与作用
汉诺塔(Hanoi Tower)是一个经典的递归问题,它涉及到数据结构中的栈操作和递归算法的理解。在C语言中实现汉诺塔问题,主要需要用到递归函数和栈的概念。接下来,我们将深入探讨汉诺塔问题的背景、规则、解法以及...
双色汉诺塔(Bi-color Hanio Tower)是对经典汉诺塔游戏的一种变体,其中圆盘有两种颜色,每种颜色有自己的规则:同色圆盘不能相邻。因此,在移动圆盘时,除了考虑圆盘大小,还需要考虑颜色匹配。这增加了问题的复杂...
Java汉诺塔(Hanoi Tower)程序是一种经典的递归算法示例,用于演示如何通过编程解决复杂问题。汉诺塔游戏是由三个柱子和一堆大小不一的圆盘组成,目标是将所有圆盘从一个柱子移动到另一个柱子,每次只能移动一个...
Hanio塔问题的源代码,欢迎有需要的下载。
在提供的压缩包文件中,"www.pudn.com.txt"可能是资源来源的说明或链接,而"hanio(T)"可能是包含VC++源代码的文件。通过分析这个文件,你可以看到如何将上述理论应用到实际代码中。如果你对VC++编程不熟悉,建议参考...
汉诺塔(Hanoi)问题是一个经典的递归算法问题,起源于19世纪法国数学家爱德华·卢卡斯提出的一个智力游戏。这个游戏中有三个柱子和一堆大小不一的圆盘,所有圆盘起初都堆在第一个柱子上,按照由大到小的顺序...
#### 解决汉诺塔问题的函数 `void hanio(int n, char one, char two, char three)` 这个函数是解决汉诺塔问题的核心部分,采用了递归的方式实现。具体逻辑如下: 1. 当只有一个圆盘时(即`n == 1`),直接调用`...
在这个场景中,"MFC_hanio.rar"是一个使用MFC库在Visual C++ 6.0环境下开发的汉诺塔游戏的源代码包。 在VC6的MFC环境中,开发人员可以利用MFC提供的类库来创建窗口、对话框、控件等元素,实现用户交互。在这个汉诺...
编写这个游戏主要是为了学习,用Turbo c2.0编写, ...汉诺塔曾是一个谜题 但被后人改制成了一个游戏 这个游戏益智健脑 令人百玩不厌 是您休闲时的好伴侣 现在就运用你的智慧 开动您的大脑去试试吧
汉诺塔是一个经典的递归问题,源于19世纪由数学家艾德蒙·洛卡尔设计的游戏。在C#编程语言中实现汉诺塔动态演示程序可以为学习者提供理解和应用递归算法的良好实践。本项目是使用Visual Studio 2010开发的,它包含...
汉诺塔(Hanoi Tower)是一个经典的数学游戏,通常用三根柱子和一堆不同大小的盘子来演示。在VRML(Virtual Reality Modeling Language,虚拟现实建模语言)中,我们可以利用其3D场景构建能力来模拟这个游戏。VRML是...
data-structure 基本数据结构的定义及相关操作,如线性表(包括栈、队列)...数据结构(8)--栈的应用之行编辑程序、括号匹配检验、数制转换、hanio塔问题 stack/stack/lineEdit.py stack/parenthesisMatch.py stack/conv
四柱汉诺塔问题的求解程序.解题思路:如a,b,c,d四柱. 要把a柱第n个盘移到目标柱子(d柱),先把上层 分两为两部份,上半部份移到b柱,下半部分移到c柱,再把第n盘移到 目标柱子,然后,c柱盘子再移到目标柱子,再把b柱盘子移到...
基本要求:使用递归算法进行汉诺塔搬移操作,塔高为N层,要求设计具有图形界面的算法演示程序,可以进行N的输入以及在搬移过程中动态描绘出算法的执行过程。 提高要求:使用合理的演示方式以便清楚展示算法实现原理...
汉诺塔(Hanoi Tower)问题是一个经典的递归算法问题,源自19世纪法国数学家爱德华·卢卡斯提出的一个智力游戏。这个程序包含了汉诺塔的源代码,旨在帮助用户理解并实现该算法。汉诺塔游戏通常涉及三个柱子和一堆...
汉诺塔(Hanoi Tower)是一个经典的递归问题,它源于19世纪法国数学家艾德蒙·兰道提出的思考实验。在这个问题中,有三根柱子和一堆大小不一的圆盘,最初所有圆盘都放在第一根柱子上,按照由大到小的顺序自上而下...
hanoi塔问题实例,递归的一个应用 三根针A,B,C。把A上的转移到C盘
汉诺塔(Hanoi Tower)是一个经典的递归问题,源于19世纪的法国数学家艾德蒙·朗利。在MFC(Microsoft Foundation Classes)框架下实现汉诺塔游戏,可以提供一个直观的用户界面,让用户通过鼠标操作来解决这个问题。...
本主题主要关注如何利用MFC实现一个可视化版的汉诺塔(Hanoi Tower)游戏。 汉诺塔是一种经典的逻辑问题,目标是将一叠盘子从一根柱子移动到另一根柱子,遵循以下规则: 1. 每次只能移动一个盘子。 2. 盘子不能被比...