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算法之———河内之塔相关推荐

  1. java算法1——河内之塔

      河内之塔游戏规则:有A.B.C三个石棒,A上有若干个从小到大依次排列的盘子,盘子的数量为n,现在要求,将A棒上的盘子依次移动到C棒上,并且移动过程中要保证小盘在大盘之上.   (1)当n=1时:将 ...

  2. 【C】C语言之经典算法:河内之塔(1)

    文章目录 前言 一.背景 二.思路解析 三.流程图解析 四.代码附上 五.结果 六.参考链接 [C]C语言之经典算法:河内之塔(1) 前言 博主开通了C语言算法专栏,旨在对于有关C语言的一些经典算法的 ...

  3. JAVA经典算法之河内之塔

    1 .河内之塔 说明 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于 1883 年从泰国带至法国的,河内为越战时 北越的首都,即现在的胡志明市: 1883 年法国数学 ...

  4. 算法之一 河内之塔

    河内之塔介绍 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883年法国数学家 Edouard ...

  5. 河内塔算法java_河内递归塔Java

    这是我使用递归解决河内塔的Java代码: /**here is a stack of N disks on the first of three poles (call them A, B and C ...

  6. 河内之塔算法php,河内之塔(汉诺塔)

    题目: 三个柱子刚互维曾屏以公式近开.护相蔽我司幻近开. A.B.C.在A柱子从上到下 按照从小到大的顺序放置64盘子,命令将所有的盘子从A柱子移至C柱子,并且搬运过程中小盘子不能放在大盘子上面,且 ...

  7. 20190925:(经典算法系列)河内之塔

    河内之塔 题目 大致思路 代码实现 题目 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883 ...

  8. java优秀算法河内之塔_河内塔的Java程序

    java优秀算法河内之塔 Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objec ...

  9. 河内之塔java_java优秀算法河内之塔_河内塔的Java程序

    java优秀算法河内之塔 Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objec ...

最新文章

  1. 开源 SPL 优化报表应用应对没完没了
  2. UA MATH575B 数值分析下 统计物理的随机模拟方法5
  3. 【推荐系统】一文梳理序列化推荐算法模型进展
  4. nslang oracle_RAC11g+DG 高可用容灾方案部署
  5. iOS之设置用户头像的圆角
  6. remix卡在android root,小米平板刷入remixeOS后怎么root?
  7. java特性,健壮性,程序设计风格及文档
  8. string replace_面试必问:String类型为什么设计成不可变的?
  9. POJ-2031-Building a Space Station
  10. 关于射频同轴连接器的功率容量探讨
  11. FRM-18108 FRM-10102错误解决
  12. gtest 单元测试工具的基本使用
  13. 洛谷-2028 龙兄摘苹果
  14. k8s使用ipvs模式
  15. Harbor开源项目有奖征文活动开启
  16. js获取一段时间内工作日的天数
  17. 关于Precision, Accuracy, F1, Micro-Ave, Macro-Ave
  18. 利用MAPI实现邮件收发(VC++)
  19. Oracle数据库撤回操作
  20. Android视频编辑器(一)通过OpenGL预览、录制视频以及断点续录等

热门文章

  1. mysql int字段 被转成Long问题解决
  2. Selenium自动登录淘宝,我无意间发现了登录漏洞!
  3. 基于JAVA电子产品专卖电商系统计算机毕业设计源码+系统+lw文档+部署
  4. 『互联网架构』软件架构-分布式架构
  5. mac chrom添加vue-devtools
  6. curdate 和now,如何使MySQL的NOW()和CURDATE()函数使用UTC?
  7. hive执行sh脚本时报错No such file or directory的解决办法
  8. 免费公开微博小助手源代码---基于Autojs4的
  9. Cypress之处理页面弹框以及多tab页间切换
  10. 指定nacos配置文件格式为yml格式