package lsn1.sjjg.cct.cn.lsn1; import org.junit.Test; /** * 递归实现汉诺塔 * * Created by linyaokui on 17/11/28. */ public class Hanoi { @Test public void test(){ hanoi(3,1,2,3); } /** * * @param n 盘子的个数 * @param start 开始的柱子 * @param middle 中介柱子 * @param end 结果的柱子 */ public void hanoi(int n,int start,int middle,int end){ if(n == 1){ System.out.println(start+"--->" +end); }else{ hanoi(n-1,start,end,middle);//把第一个上的n-1个移到中间 System.out.println(start+"--->"+end);//把第一个上的一个移到最后 hanoi(n-1,middle,start,end);//把中间的n-1个移到最后 } } }
汉诺塔
最新推荐文章于 2018-02-22 20:33:22 发布
本文介绍了一个使用Java实现的汉诺塔问题的递归解决方案。通过递归调用将大盘子从起始柱子移动到目标柱子的过程进行分解,实现了将任意数量的盘子从一个柱子移动到另一个柱子的目标。该算法简洁明了,易于理解和实现。
2565

被折叠的 条评论
为什么被折叠?



