// "汉诺塔"难题:塔的设备包括三根柱子和一套直径各不相同的空心圆盘。开始时源柱子上的所有圆盘都按照较小的
// 圆盘放在较大的圆盘上的顺序堆叠。目标是通过每次移动一个圆盘到另一根柱子,最终将一堆圆盘移动到目标柱子
// 上,过程中不可以将大的圆盘放置在较小的圆盘之上。
var hanoi = function (disc, src, aux, dst) {
if (disc > 0) {
hanoi(disc - 1, src, dst, aux);
document.writeln('Move disc ' + disc + ' from ' + src + ' to ' + dst + ' <br>');
hanoi(disc - 1, aux, src, dst);
}
}
hanoi(3, 'Src', 'Aux', 'Dst');
结果:
Move disc 1 from Src to Dst
Move disc 2 from Src to Aux
Move disc 1 from Dst to Aux
Move disc 3 from Src to Dst
Move disc 1 from Aux to Src
Move disc 2 from Aux to Dst
Move disc 1 from Src to Dst
分享到:
相关推荐
汉诺塔问题汉诺塔问题汉诺塔问题汉诺塔问题汉诺塔问题汉诺塔问题
任意输入N个盘,在三个柱子上实现汉诺塔问题的非递归求解,用栈进行
在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好...故汉诺塔问题又被称为“世界末日问题。”
汉诺塔问题C/C++;解决汉诺塔问题的算法;递归
利用状态空间法对汉诺塔定义状态,用广度优先的方法解决汉诺塔问题,人工智能.(属于学校学习课程所做,非商业内容)
汉诺塔问题
算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码
C++语言递归算法求解原始汉诺塔问题,邻近移动汉诺塔问题,循环移动汉诺塔问题,奇偶汉诺塔问题
汉诺塔问题的动画演示 ___________________________________________________________________________________________________________________________________________________________________________________...
汉诺塔问题 java解决方案汉诺塔问题 java解决方案汉诺塔问题 java解决方案
自己编的汉诺塔问题,用数据结构中的栈编的
汉诺塔问题C语言实现
c++递归实现汉诺塔问题。 算法分析与设计 例题的源码实现。跟书上的一样。
汇编语言中用递归算法实现汉诺塔问题。有X,Y,Z三个柱子和几个大小都不一样且能套进柱子的圆盘(编号为1,2,3,……,N),这N个圆盘已按由大到小的顺序依次套在X柱上,要求将这些圆盘按如下规则由X柱移到Z柱上。 ...
汉诺塔问题是学习 C++的一个难点,本 C++程序非常简单,非常容易理解
汉诺塔问题,对初学者很有好处.典型的递归问题.学会了,就进步很大了
网上看来的,比较详细。包含了递归以及不用递归的代码。 C和C++版的都有。
设A、B、C三个塔座,在A上叠加着从大到小的n个圆盘,要求把A上的圆盘移到C上,打印每一个圆盘移动轨迹: 每次只能移动一个圆盘; 任何时刻不允许将大圆盘放在小圆盘之上; 可借助辅助塔B
汉诺塔问题并计算总次数--C++源代码,本资源不仅给出了源代码,还进行了结果分析与比较!