学习数据结构绕不过会遇到汉诺塔的问题,这个也比较经典,问题我也不详细描述了。

简单来说三根木桩,初始状态下一根木桩上叠放着n个盘子,大盘在下小盘在上,任你操作,把这些盘子移动到第三根木桩,当然会有限制条件,限制条件如下:

1.每次只能移动最上面的一个盘子

2.移动过程中小盘子必须放在大盘子上面

其实编程实现的话就是递归的思想,比较典型的递归实例,所以基本各个书都会提到。

下面直接看代码吧import java.io.*;

import java.util.Scanner;

public class CH04_04 {

public static void main(String[] args) throws IOException {

Scanner input=new Scanner(System.in);

System.out.print("请输入盘子数量: ");

String str=input.nextLine();

int i=Integer.parseInt(str);

System.out.println("移动步骤如下: ");

hanoi(i,'A','B','C');

}

/*将n个盘子从柱子A经柱子B移动到柱子C*/

public static void hanoi(int n,char A,char B,char C) {

if(n==1) {

System.out.println("盘子从 "+A+" 移到 "+C);

}

else {

hanoi(n-1,A,C,B);

System.out.println("盘子从 "+A+" 移到 "+C);

hanoi(n-1,B,A,C);

}

}

}

输入n=3,结果如下

hanoi塔java_Java实现hanoi塔相关推荐

  1. hanoi塔(汉诺塔)--C语言

    hanoi塔(汉诺塔)–C语言 一.什么是hanoi塔 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具. 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄 ...

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

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

  3. 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。

    import java.math.BigInteger; /* * 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具. 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序 ...

  4. 【汉诺塔】汉诺塔问题

    汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘 ...

  5. C语言递归算法——汉诺塔问题(河内塔)

    汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘 ...

  6. 汉诺塔+汉诺四塔(C/C++)

    目录 汉诺塔 1  简介 2  代码思路 2.1  对于次数的理解 2.2  对于移动的理解 3  代码 4  加深理解 汉诺四塔 1  思路 2  代码 汉诺塔 1  简介 汉诺塔(Tower of ...

  7. C++汉诺塔问题(河内塔)

    C++汉诺塔问题(河内塔) 这是一个非常经典的递归问题. 递归:在函数内部又再次调用函数自身的问题 假设有n个盘子,需要把这些盘子从第一根起始柱A移动到第三根目标柱C中. 1.首先需要把n-1个盘子移 ...

  8. 汉诺塔(又称河内塔)

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

  9. 汉诺塔II|汉诺塔4柱

    汉诺塔II|汉诺塔4柱 Problem Description 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根 ...

最新文章

  1. 关于linux内存管理
  2. php代码怎么复制_PHP_PHP网站备份程序代码分享,效果图:PHP代码 复制代码 代码 - phpStudy...
  3. 播放图像有锯齿_反隔行操作
  4. Spring学习6之自动装配Bean02
  5. 英媒:滴滴和优步每年烧钱64亿
  6. ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行
  7. HTML DOM教程 47-JavaScript Date 对象
  8. js 字符串插入_前端利器React,为什么推荐JSX来替换JS
  9. 【转】精华!图解局域网共享设置步骤 - 李小虎
  10. windows 2008 安装 apache + mysql + php
  11. 对超级计算机的认识有关论文,计算机科与技术专业的认识与思考.docx
  12. vue一个页面用两个以上页面 时时刷新
  13. microsoft ppt制作小技巧
  14. 根据自己的词汇量阅读英语原著
  15. 1.Requests库
  16. 从零搭建Spring Boot脚手架:手写Mybatis通用Mapper4
  17. vue之vue的生命周期、swiper、自定义组件的封装、自定义指令、过滤器、单文件组件及vue-cli
  18. stm32f4xx标准外设固件库
  19. 原来开车和写博客是很相似的心理变化过程
  20. 2020年双十一销售额破亿的新品牌达16个与往年三倍之多

热门文章

  1. java socket tomcat_在Tomcat环境下使用socket通信
  2. mac找不到mysql_mac找不到mysql
  3. 史上最大多模态图文数据集发布!
  4. 论文浅尝 | IRW:基于知识图谱和关系推理的视觉叙事框架
  5. 会议交流 | 最新NLP核心技术与前沿实践分享!
  6. Text2SQL 语义解析数据集、解决方案、paper资源整合项目
  7. MD5,MD2,SHA加密的实现方式
  8. 指针和数组替换和区别
  9. 从工程文化和运维理念理解Netflix
  10. Node.js npm 详解