hanoi塔java_Java实现hanoi塔

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

简单来说三根木桩,初始状态下一根木桩上叠放着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,结果如下

d9e6b15eed00d31c37d2db42fc7b0591.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息太多,时间太少: 大脑如何区分重要和不重要的事?

来源:脑与心智毕生发展研究中心CLIMB我们总是会错过一些想看到、听到或感觉到的东西——尤其是当有大量信息争夺我们的注意时。是什么吸引了我们的注意?记住重要的事情需要多长时间?神经科学家(研究大脑和行为的科学家)发现,大脑的…

Java缓存框架使用EhCache结合Spring AOP

Java缓存框架使用EhCache结合Spring AOP 一.Ehcache简介 EhCache是一个纯Java的进程内缓存框架,具有如下特点: 1. 快速简单,非常容易和应用集成。 2.支持多种缓存策略 。 3. 缓存数据有两级:内存和磁盘,因…

python vba 秒出结果_为什么公司每天用20个人手工处理数据出报告,也不用5个会vba,python的人来制作??...

逼呼上无数人反复在说:先问是不是,再问为什么!不是没有道理啊!!!可能题主所在单位是这种情况,你看到处理数据出报告的人都不会VBA,也不会python,但是并不是所有单位都这样…

java 并发 set_高并发下的Java数据结构(List、Set、Map、Queue)

1.并发ListVector 或者 CopyOnWriteArrayList 是两个线程安全的List实现,ArrayList 不是线程安全的。因此,应该尽量避免在多线程环境中使用ArrayList。如果因为某些原因必须使用的,则需要使用Collections.synchronizedList(List list)进行包装…

知识图谱和图分析与可视化

来源:知链数据“知识图谱和图分析与可视化”这个题目看起来比较大,我尝试基于本人的一些图数据可视化与分析经验,对知识图谱和图分析与可视化之间的关系进行简单梳理,并分享一些以知识图谱为代表的图数据与图可视化、图分析结合进…

python 生成器装饰器_4.python迭代器生成器装饰器

基本概念1.容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内…

java开源对象池_JAVA 对象池

GenericObjectPool利用一个org.apache.commons.collections.CursorableLinkedList对象来保存对象池里的对象。这种对象池的特色是:可以设定最多能从池中借出多少个对象。可以设定池中最多能保存多少个对象。可以设定在池中已无对象可借的情况下,调用它的…

新一代人工智能专利分析

来源:三思派人工智能(Artificial Intelligence,AI)自诞生以来,已经过约60年的发展。2006年深度学习算法的重大突破带来了人工智能的第三次爆发。同时也引发专利申请的激增,2006年至2016年,十年的…

MYSQL性能优化详解(二)

接着上一篇学习:http://www.cnblogs.com/quanzhiguo/p/6401453.html 七、MySQL数据库Schema设计的性能优化 高效的模型设计 适度冗余-让Query尽两减少Join 大字段垂直分拆-summary表优化 大表水平分拆-基于类型的分拆优化 统计表-准实时优化 合适的数据类型 时间存储…

python if else用法同一行_在Python的同一行中使用if else for和del吗?-问答-阿里云开发者社区-阿里云...

我有一个列表,其项目是可变长度的列表。如果这些可变长度的列表项超过此长度,则需要将其截断为特定长度(x)。我做了这个小的功能。def truncateList(batch_, trim_len):truncated_list []for eachAbstract in train_abstracts_encoded:if len(eachAbstr…

java no resultset_jdbc - Java ResultSet如何检查是否有任何结果

jdbc - Java ResultSet如何检查是否有任何结果结果集没有hasNext的方法。 我想检查resultSet是否有任何值这是正确的方法if (!resultSet.next() ) {System.out.println("no data");}kal asked 2019-02-19T19:16:57Z21个解决方案472 votes假设您正在使用新返回的Resul…

图解谷歌大脑丶城市大脑丶全球脑与互联网大脑的关系

人类很早就朦胧的发现社会组织具有神经系统的特征。19世纪到20世纪,一些前瞻的哲学家们开始不断将科技与脑进行了关联,提出了"器官映射","社会神经网络","全球脑"。 21世纪之后,更多科技大脑概念不断涌现,从互联网大脑到城市大脑,从谷…

Ubuntu 安装调整工具移动 Launcher 启动器位置

问题:如何将 Ubuntu 16.04 屏幕左侧的 Launcher 启动器由屏幕底部移动到屏幕左侧。 Ubuntu 16.04 最新的 unity-tweak-tool 工具,已经为用户提供了通过图形界面,实现上述 Launcher 启动器位置移动的功能。 1、在终端中执行: sudo …

python求助神器_python三大神器

Python 中有很多优秀的包,本文主要讲一下 pip, virtualenv, fabric1. pip 用来包管理1 #安装,可指定版本号2 (sudo) pip install Django1.6.834 #升级5 (sudo) pip install bpython --upgrade67 #一次安装多个8 (sudo) pip install BeautifulSoup4 fabri…

滴滴自动驾驶CEO张博:十年内无人驾驶对消费者没有吸引力丨厚势汽车

来源:WAVE2019张博:在 2012 年滴滴创立的时候,我们是一个非常简单的想法。我们发现在打出租车的场景下,无论是司机还是乘客效率都非常低。在滴滴出现之前,一个乘客想要打出租车必须要下楼招一下手,这个信号…

garch预测 python_数据科学方面的Python库,实用!

作者:Python开发与大数据人工智能原文:公众号 Python开发与大数据人工智能Python是一种很棒的编程语言。事实上,它还是世界上发展最快的编程语言之一。它一次又一次证明了它在数据科学职位中的实用性。整个Python及其库的生态系统使其成为全世…

纯js实现html转pdf

项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格、svg图片和样式。 简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf。 咋不上天呢…… 查了一下,…

java 判断是linux系统_java判断是window系统还是Linux系统,并获取其IP地址及文件上传 | 学步园...

这是upload类的方法:public class Upload {public static String upload(FormFile formfile,String dirPath,int port){String savePath"";String ip"";try{String filename formfile.getFileName().trim(); // 文件名if (!"".equal…

物联网中的推荐系统

来源:北京物联网智能技术应用协会作者 | Alexander Felfernig, Seda Polat Erdeniz编译 | CDA数据科学研究院Recommender systems in the Internet of Things1、背景介绍物联网是一种联网的基础架构,是物联网、互联网和语义学领域之间融合的结果&#xf…

pwm控制的基本原理_单片机PWM控制基本原理详解~

PWM是Pulse Width Modulation的缩写,它的中文名字是脉冲宽度调制,一种说法是它利用微处理器的数字输出来对模拟电路进行控制的一种有效的技术,其实就是使用数字信号达到一个模拟信号的效果。这是个什么概念呢?我们一步步来介绍。首…