`

汉诺塔问题

    博客分类:
  • Java
阅读更多

如下面代码:

public class HanoiTest 
{
	private static int size = 3;
	
	public static void main(String[] args)
	{
		Hanoi(size, 'A', 'B', 'C');
	}
	
	public static void Hanoi(int num, char from, char ch, char to)
	{
		if(num == 1)
			System.out.println("Moving disk 1 from " + from + " to " + to);
		else
		{
			Hanoi(num-1, from, to, ch);
			
			System.out.println("Moving disk " + num + " from " + from + " to " + to);
			
			Hanoi(num-1, ch, from, to);
		}
	}
}

 

 

输出如下:

 

Moving disk 1 from A to C
Moving disk 2 from A to B
Moving disk 1 from C to B
Moving disk 3 from A to C
Moving disk 1 from B to A
Moving disk 2 from B to C
Moving disk 1 from A to C

 

分享到:
评论
1 楼 yingfang05 2009-05-01  
汉诺塔也算得上是一道经典的递归题了,不知道楼主有没有尝试过用迭代做?

相关推荐

    汉诺塔问题matlab代码

    汉诺塔问题是一种经典的递归算法问题,源自印度的一个古老传说。在数学和计算机科学领域,它是用来教学和理解递归思想的一个经典实例。在MATLAB中实现汉诺塔问题,我们可以利用其强大的编程功能来解决这个问题。 ...

    汉诺塔问题算法以及实现

    ### 汉诺塔问题算法及其实现 #### 概述 汉诺塔问题是一个经典的递归算法案例,它不仅在计算机科学领域有着广泛的应用,同时也被用来教授递归思想的基础知识。这个问题最早由法国数学家Édouard Lucas于1883年提出,...

    汉诺塔问题演示 代码

    汉诺塔问题是一种经典的递归算法问题,源自印度的一个古老传说。它涉及到将一堆盘子从一根柱子移动到另一根柱子,遵循以下规则: 1. 任何时候,盘子必须保持在柱子上。 2. 一次只能移动一个盘子。 3. 盘子不能被比...

    用栈实现汉诺塔问题

    任意输入N个盘,在三个柱子上实现汉诺塔问题的非递归求解,用栈进行

    汉诺塔问题及变体

    在压缩包中的源代码文件,如`hanoi.cpp`可能包含了基础的汉诺塔问题的递归解决方案,而`hanoiParity.cpp`可能实现了奇偶汉诺塔问题的算法,`hanoiNear.cpp`则可能针对邻近移动汉诺塔问题进行了实现,`hanoiCircle....

    用汇编语言实现汉诺塔问题

    汇编语言中用递归算法实现汉诺塔问题。有X,Y,Z三个柱子和几个大小都不一样且能套进柱子的圆盘(编号为1,2,3,……,N),这N个圆盘已按由大到小的顺序依次套在X柱上,要求将这些圆盘按如下规则由X柱移到Z柱上。 ...

    状态空间法解决汉诺塔问题

    利用状态空间法对汉诺塔定义状态,用广度优先的方法解决汉诺塔问题,人工智能.(属于学校学习课程所做,非商业内容)

    解决汉诺塔问题的算法

    汉诺塔问题C/C++;解决汉诺塔问题的算法;递归

    汉诺塔问题vbbianch

    汉诺塔问题是一个经典的递归算法问题,源自印度古老传说,旨在通过移动一系列盘子从一个柱子到另一个柱子,遵循三个基本规则:每次只能移动一个盘子、大盘子不能放在小盘子上面,以及所有盘子必须从初始柱子移动到...

    汉诺塔问题的ppt

    汉诺塔问题

    Hanoi Tower 汉诺塔问题/c

    汉诺塔问题是一个经典的递归问题,在计算机科学和数学领域都有着广泛的应用。它不仅是一个编程练习题,也是理解递归思想和分治策略的一个很好例子。 首先,我们来了解汉诺塔问题的基本概念。汉诺塔(Hanoi Tower)...

    汉诺塔问题 C++

    汉诺塔问题是一个经典的递归问题,源自印度的古老传说,它涉及到将一系列圆盘从一根柱子移动到另一根柱子,同时遵循三个规则: 1. 每次只能移动一个圆盘。 2. 不允许较大的圆盘位于较小的圆盘之上。 3. 必须将所有...

    c++递归实现汉诺塔问题

    汉诺塔问题是一个经典的计算机科学问题,源自印度的古老传说,它涉及到三个柱子和一堆大小不一的圆盘。目标是将所有圆盘从一个柱子(称为起始柱)移动到另一个柱子(称为目标柱),同时遵循以下三个规则: 1. 每次...

    c语言求解汉诺塔问题

    汉诺塔问题是一个经典的计算机科学问题,源自印度的古老传说,它涉及到将一系列盘子从一根柱子移动到另一根柱子,遵循特定的规则。在这个问题中,有三根柱子(通常标记为A、B和C)和一些大小不一的盘子,每个盘子都...

    汉诺塔问题的详细讲解以及实现代码

    汉诺塔问题是一个经典的递归问题,源自印度的古老传说,它涉及到三个柱子和一组大小不一的圆盘。目标是将所有圆盘从一个柱子(称为起始柱)移动到另一个柱子(目标柱),同时遵循以下规则: 1. 任何时候,较大的...

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

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

    程序设计中的经典——汉诺塔问题

    汉诺塔问题是一个经典的递归问题,源自印度的古老传说,它涉及到在三个柱子(A、B、C)之间移动一系列盘子,遵循以下规则: 1. **基本规则**:每次只能移动一个盘子。 2. **顺序规则**:任何时候较大的盘子都不能...

    汉诺塔问题的简单程序

    汉诺塔问题是一个经典的计算机科学问题,源自印度的古老传说,它涉及到三个柱子和一组盘子,每个盘子大小不一。问题的目标是将所有盘子从初始柱子(通常称为A柱)移动到目标柱子(C柱),遵循以下规则: 1. 每次...

Global site tag (gtag.js) - Google Analytics