package demo;
/**
* 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时
* 北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世
* 纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64
* 个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根
* 石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬
* 运完毕之时,此塔将毁损,而也就是世界末日来临之时。
* @author gaoq
* @date 2015-5-13 上午10:31:28
*/
public class HeNeiZhiTa {
private static volatile int count=0;
public static void main(String[] args) {
int n = 3;
hanoi(n, 'A', 'B', 'C');
System.out.println("COUNT:"+count+"条");
}
public static void hanoi(int n,char A,char B,char C){
count++;
if(n == 1) {
System.out.println("Move sheet "+n+" from "+A+" to "+C+"");
}
else {
hanoi(n-1, A, C, B);
System.out.println("Move sheet "+n+" from "+A+" to "+C+"");
hanoi(n-1, B, A, C);
}
}
/**解法:
如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘
子,就将B当作辅助柱。如果盘数超过2个,将第三个以下的盘子遮起来,就很简单了,每次处
理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,其实就是进入程式
的递回处理。事实上,若有n个盘子,则移动完毕所需之次数为2^n - 1
**/
}
相关推荐
java毕业设计——基于Misty1算法的加密软件(java)的实现(源代码+论文).zip java毕业设计——基于Misty1算法的加密软件(java)的实现(源代码+论文).zip java毕业设计——基于Misty1算法的加密软件(java)的实现(源代码+...
在Java编程环境下,我们可以构建一个线性规划算法来解决这些问题。以下是关于线性规划算法实现的详细解释: 1. **线性规划模型**:线性规划问题通常由以下部分组成: - 目标函数:我们需要最大化或最小化的函数,...
Java算法详解——Algorithm.zipJava算法详解——Algorithm.zipJava算法详解——Algorithm.zipJava算法详解——Algorithm.zipJava算法详解——Algorithm.zipJava算法详解——Algorithm.zipJava算法详解——Algorithm....
汉诺塔——经典的递归 *实现移动函数 *递归实现汉诺塔函数
java毕业设计——java基于蚁群算法路由选择可视化动态模拟系统的的设计与实现(论文+开题报告+翻译+外文翻译).zip java毕业设计——java基于蚁群算法路由选择可视化动态模拟系统的的设计与实现(论文+开题报告+翻译+...
数据结构与算法分析——java语言描述 pdf
数据结构与算法分析——Java语言描述.pdf
《数据结构与算法分析——Java语言描述》是一本深度探讨数据结构和算法的权威书籍,专为Java程序员设计。本书旨在帮助读者理解如何在实际编程中有效地使用数据结构和算法,提升程序性能和解决问题的能力。书中的内容...
数据结构与算法分析——Java语言描述(第二版)是普林斯顿大学Mark Allen Weiss的经典之作,但是网上很少能找到Java描述第二版的课后习题,连作者的个人主页也明确表示不提供课后习题,只能到出版商那里去索取,这个...
读书笔记:数据结构与算法分析——Java语言描述
* 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。
本资料集是“数据结构与算法答案——java语言描述”,虽然全为英文内容,但其深入探讨了使用Java实现数据结构和算法的细节。 1. **数组**:数组是最基本的数据结构之一,它是一系列相同类型元素的集合,可以通过索...
[0分共享] 数据结构与算法分析——Java语言描述
机器学习决策树算法中特征选项的算法实现——信息熵 首先我们将信息熵的定义进行阐述: 熵经验熵 我们这里以网上数据贷款申请为例:数据来自(https://blog.csdn.net/c406495762/article/details/75663451) 在...
按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...
计算机算法引论——设计与分析技术.本书讲述计算机算法的各种设计策略,包括分治技术、贪心技术、动态规划技术回溯和分支限界技术等。介绍算法分析技术、算法的时间和空间复杂度分析方法;讨论各类经典的应用问题...
数据结构与算法分析——C语言描述 国外数据结构与算法分析方面的标准教材