java算法之———河内之塔
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算法之———河内之塔相关推荐
- java算法1——河内之塔
河内之塔游戏规则:有A.B.C三个石棒,A上有若干个从小到大依次排列的盘子,盘子的数量为n,现在要求,将A棒上的盘子依次移动到C棒上,并且移动过程中要保证小盘在大盘之上. (1)当n=1时:将 ...
- 【C】C语言之经典算法:河内之塔(1)
文章目录 前言 一.背景 二.思路解析 三.流程图解析 四.代码附上 五.结果 六.参考链接 [C]C语言之经典算法:河内之塔(1) 前言 博主开通了C语言算法专栏,旨在对于有关C语言的一些经典算法的 ...
- JAVA经典算法之河内之塔
1 .河内之塔 说明 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于 1883 年从泰国带至法国的,河内为越战时 北越的首都,即现在的胡志明市: 1883 年法国数学 ...
- 算法之一 河内之塔
河内之塔介绍 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883年法国数学家 Edouard ...
- 河内塔算法java_河内递归塔Java
这是我使用递归解决河内塔的Java代码: /**here is a stack of N disks on the first of three poles (call them A, B and C ...
- 河内之塔算法php,河内之塔(汉诺塔)
题目: 三个柱子刚互维曾屏以公式近开.护相蔽我司幻近开. A.B.C.在A柱子从上到下 按照从小到大的顺序放置64盘子,命令将所有的盘子从A柱子移至C柱子,并且搬运过程中小盘子不能放在大盘子上面,且 ...
- 20190925:(经典算法系列)河内之塔
河内之塔 题目 大致思路 代码实现 题目 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883 ...
- java优秀算法河内之塔_河内塔的Java程序
java优秀算法河内之塔 Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objec ...
- 河内之塔java_java优秀算法河内之塔_河内塔的Java程序
java优秀算法河内之塔 Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objec ...
最新文章
- 开源 SPL 优化报表应用应对没完没了
- UA MATH575B 数值分析下 统计物理的随机模拟方法5
- 【推荐系统】一文梳理序列化推荐算法模型进展
- nslang oracle_RAC11g+DG 高可用容灾方案部署
- iOS之设置用户头像的圆角
- remix卡在android root,小米平板刷入remixeOS后怎么root?
- java特性,健壮性,程序设计风格及文档
- string replace_面试必问:String类型为什么设计成不可变的?
- POJ-2031-Building a Space Station
- 关于射频同轴连接器的功率容量探讨
- FRM-18108 FRM-10102错误解决
- gtest 单元测试工具的基本使用
- 洛谷-2028 龙兄摘苹果
- k8s使用ipvs模式
- Harbor开源项目有奖征文活动开启
- js获取一段时间内工作日的天数
- 关于Precision, Accuracy, F1, Micro-Ave, Macro-Ave
- 利用MAPI实现邮件收发(VC++)
- Oracle数据库撤回操作
- Android视频编辑器(一)通过OpenGL预览、录制视频以及断点续录等
热门文章
- mysql int字段 被转成Long问题解决
- Selenium自动登录淘宝,我无意间发现了登录漏洞!
- 基于JAVA电子产品专卖电商系统计算机毕业设计源码+系统+lw文档+部署
- 『互联网架构』软件架构-分布式架构
- mac chrom添加vue-devtools
- curdate 和now,如何使MySQL的NOW()和CURDATE()函数使用UTC?
- hive执行sh脚本时报错No such file or directory的解决办法
- 免费公开微博小助手源代码---基于Autojs4的
- Cypress之处理页面弹框以及多tab页间切换
- 指定nacos配置文件格式为yml格式