`

汉诺塔————递归

阅读更多
package Hannuo;

import java.io.*;

public class Hanuoid {

	private static int count = 0 ;     //移动次数
	public void move(int n, char Origin, char Destination, char Temporary){
		if(n <= 0) {
			System.out.println("The disk is illegal !") ;
			return ;
		}
		if(n == 1){
			count ++ ;
			System.out.println("Move disk 1 from " + Origin + " to " + Destination  + "   " + count) ;
		}
			
		else {
			
			move(n-1, Origin, Temporary, Destination) ;
			count ++ ;
			System.out.println("Move disk " + n + " from " + Origin + " to " + Destination + "   " + count) ;
			move(n-1, Temporary, Destination, Origin) ;
		}
	}
	
	public static void main(String[] args){
		
		Hanuoid hannuo = new Hanuoid() ;
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ;
		String input = "" ;
		try{
			input = br.readLine() ;
		}catch(IOException e){
			e.printStackTrace() ;
		}
		int num = Integer.parseInt(input) ;
		hannuo.move(num, 'A', 'B', 'C') ;
	}
}
 
0
2
分享到:
评论

相关推荐

    java算法——汉诺塔经典的递归

    汉诺塔——经典的递归 *实现移动函数 *递归实现汉诺塔函数

    JAVA图形界面程序——汉诺塔演示程序代码

    ### JAVA图形界面程序——汉诺塔演示程序代码 #### 概述 本篇文章将详细介绍一个用Java语言编写的汉诺塔问题的图形界面演示程序。汉诺塔问题是一种经典的递归算法实例,常用于教授递归思想。在这个程序中,我们将...

    经典的递归程序——汉诺塔源代码

    一个经典的递归程序,该程序很简单很清楚,让C++初学者来很好地理解递归的含义。

    汉诺塔问题 分治法——C++代码

    汉诺塔问题是一个经典的递归与分治法问题,源于印度的一个古老传说。在这个问题中,有三根柱子A、B、C,柱子A上叠着n个大小不一的圆盘,最大的在最下面,最小的在最上面。目标是将所有圆盘从柱子A移动到柱子C,但...

    汉诺塔C++程序,递归法

    汉诺塔问题源于一个古老的传说,讲述的是在世界的中心——印度的一座寺庙里,有三根金刚石制成的柱子,在第一根柱子上从下到上按照大小顺序叠着64个金盘。寺庙里的僧侣们要把这64个盘子全部移到第三根柱子上去,且...

    汉诺塔演示数据结构课程生计

    汉诺塔演示程序是一种基于数据结构的计算机程序,主要用于教学和理解递归算法。这个程序设计的目的是在界面上模拟汉诺塔游戏,通过不同大小和颜色的矩形块代表不同大小的盘子,使用户能够直观地看到游戏的进行过程。...

    python实现汉诺塔--递归(csdn)————程序.pdf

    汉诺塔是一个经典的递归问题,它源自印度的一个古老传说,涉及将一组圆盘从一根柱子移动到另一根柱子,遵循特定的规则。在这个问题中,有三根柱子,标记为 A、B 和 C,以及 n 个大小不一的圆盘,每个圆盘都标有不同...

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

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

    初学者有益的汉诺塔课件

    通过分析汉诺塔的解决方案,我们可以了解到递归算法的核心——基础情况与递归步骤。在汉诺塔的`hanoi`函数中,基础情况非常直观:没有圆盘时不需要移动。递归步骤则是将问题分解为两部分:首先将n-1个圆盘从起始柱...

    汉诺塔演示--c语言解释版

    ### 汉诺塔演示——C语言解释版 #### 一、引言 汉诺塔问题是一个经典的递归算法示例,在计算机科学领域被广泛应用于教授递归思想和解决复杂问题的方法论。本文通过一个具体的C语言实现版本,来详细阐述如何在C语言...

    汉诺塔 VC++ 源代码

    2. 汉诺塔函数:这是一个递归函数,接收三个参数——起始柱、目标柱和辅助柱。它根据汉诺塔的规则,递归地移动盘子。 3. 可视化界面:在VC++环境中,我们可以使用MFC(Microsoft Foundation Classes)库创建用户界面...

    数据结构课程设计——汉诺塔动态演示.docx

    ### 数据结构课程设计——汉诺塔动态演示 #### 概述 本次课程设计的主要目标是通过Python语言实现汉诺塔游戏的动态演示。汉诺塔是一个经典的递归问题,涉及移动一系列不同大小的盘子从一根柱子到另一根柱子,同时...

    C语言图形设计—汉诺塔演示实验(TC3.0)

    在C语言中实现汉诺塔演示实验,不仅可以帮助我们理解递归算法,还能深入学习C语言的图形图像处理。在这个实验中,我们将探讨以下几个关键知识点: 1. **C语言基础**:C语言是一种强大的编程语言,以其简洁、高效和...

    汉诺塔C++ 实现

    在C++中实现汉诺塔游戏通常会涉及递归算法。递归是一种函数调用自身的方法,对于解决汉诺塔问题非常有效。以下是C++实现汉诺塔游戏的基本步骤: 1. **定义函数**:创建一个名为`hanoiTower`的函数,接受三个参数,...

    java课程设计 汉诺塔实现

    汉诺塔问题的递归解决方案展示了计算机科学中的一个重要概念——分治策略。这种策略将复杂问题分解为更小的子问题,直到子问题足够简单可以直接求解,然后再将结果组合得到原问题的解答。学习和理解汉诺塔问题的解决...

    汉诺塔问题汉诺塔问题

    汉诺塔问题,源于印度古老传说,是一种经典的递归算法问题。它涉及到三根柱子和一堆盘子,目标是将所有盘子从第一根柱子(A)移动到第三根柱子(C),但每次只能移动一个盘子,并且任何时候大盘子都不能位于小盘子之...

    c语言递归解决八皇后 迷宫 汉诺塔 源码

    根据提供的文件信息,我们可以深入探讨三个经典的递归问题——八皇后问题、迷宫问题与汉诺塔问题,并简要分析附带的C语言递归乘法实现案例。 ### C语言递归实现乘法 首先来看文件中给出的一个利用递归实现乘法的...

    C语言——汉诺塔

    C语言实现汉诺塔、递归。初学者,谢谢

    c# 汉诺塔 堆栈

    通常,汉诺塔问题的解决方案使用递归方法来实现,但在这里,我们将探讨如何利用C#中的数据结构——堆栈,来非递归地解决这个问题。 堆栈是一种后进先出(LIFO)的数据结构,类似于日常生活中的叠盘子。在解决汉诺塔...

    C++编的游戏【汉诺塔】

    汉诺塔游戏是一种经典的递归问题,它涉及到将一个塔中的所有圆盘按照大小顺序从一个柱子移动到另一个柱子,但每次只能移动一个圆盘,并且任何时候大盘子都不能位于小盘子之上。在C++编程语言中实现这个游戏,需要对...

Global site tag (gtag.js) - Google Analytics