Java 递归实现汉诺塔问题
汉诺塔问题就是:有ABC三根柱子,A柱子上从上到下摞了很多体积依次递增的圆盘,如果将圆盘从A移动到C柱子,且依然保持从上到下依次递增。
class Hanio{public void moveOne(int n, String init, String desti){ //只有一个盘子的情况System.out.println(" move:"+n+" from "+init+" to "+desti);}public void move(int n, String init, String temp, String desti){if(n <= 0){System.out.println("number error");return;}else if(n == 1){moveOne(n,init,desti);}else{move(n-1, init, desti, temp);//首先将上面的(n-1)个盘子从init杆借助desti杆移至temp杆 moveOne(n, init, desti); //然后将编号为n的盘子从init杆移至desti杆 move(n-1, temp, init, desti);//最后将上面的(n-1)个盘子从temp杆借助init杆移至desti杆 }}
}
class HanioApp{public static void main(String args[]){Hanio hanio = new Hanio();hanio.move(3, "A", "B", "C");}
}
运行结果:
move:1 from A to Cmove:2 from A to Bmove:1 from C to Bmove:3 from A to Cmove:1 from B to Amove:2 from B to Cmove:1 from A to C
Java 递归实现汉诺塔问题相关推荐
- java递归实现汉诺塔
汉诺塔的规则是:一共三根柱子,一根柱子从上到下套着有小到大的若干个圆盘,要将所有圆盘按照这个排放顺序移动到第三根柱子上,并且每次只能移动一个圆盘. 可以将整个过程分为三个步骤来看: 第一步:将除最大圆 ...
- 用java语言实现汉诺塔问题 (Java经典编程案例)
用递归实现汉诺塔问题,代码如下: import java.util.Scanner;/*** 汉诺塔问题*/ public class Example {public static void move ...
- Py:递归求解汉诺塔,简单的几行编程可以搞定很高层的三柱汉诺塔游戏
Py:递归求解汉诺塔,简单的几行编程可以搞定很高层的三柱汉诺塔游戏 目录 输出结果 核心代码 输出结果 核心代码 def hanoi(n,x,y,z):if n==1:print(x,'--→',z) ...
- Python递归实现汉诺塔
Python递归实现汉诺塔: def f3(n,x,y,z): if(n==1):print(x,'--->',z)else:f3(n-1,x,z,y)print(x,'--->',z)f ...
- Java案例:汉诺塔问题
Java案例:汉诺塔问题 游戏规则: (1)一次只能移动一个环 (2)小环必须在大环之上 (3)所有环从A柱移到C柱
- c语言递归汉诺塔次数,c语言递归解决汉诺塔参数变化的疑惑
c语言递归解决汉诺塔参数变化的疑惑 答案:3 信息版本:手机版 解决时间 2020-04-05 14:20 已解决 2020-04-05 10:49 #include void main() {vo ...
- c语言递归解决汉诺塔问题
c语言递归解决汉诺塔问题 参考文章: (1)c语言递归解决汉诺塔问题 (2)https://www.cnblogs.com/didiaoxiaoguai/p/6686407.html 备忘一下.
- c语言 统计数量用count_C语言编程学习之递归实现汉诺塔图解!还有零基础入门视频~...
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- C语言——生存期和存储类型、递归、递归求解汉诺塔、快速排序
目录 一.生存期和存储类型 1.生存期 2.存储类型 3.自动变量(auto) 4.寄存器变量(register) 5.静态局部变量(static) 6.static 和 extern 二.递归 1. ...
最新文章
- java开发面试复试_面试java开发,面试官会问哪些问题?
- python开课吧官网_开课吧老师详解 学Python真的可以帮助提高办公效率吗
- python使用符号 表示单行注释-Pyhton 单行、多行注释符号使用方法及规范
- Android 使用Picasso加载网络图片等比例缩放
- mysql root密码忘记2018_2018-03-28设置及修改mysql用户密码学习笔记
- websocket文档_WebSocket推送 原理扫盲到上手实践
- docker无法连接mysql镜像_关于Docker官方CentOS镜像无法启动mysqld的总结
- 两点之间最短路径:弗洛伊德算法
- 设计师妹子问:字体颜色渐变,你能实现?
- CANN5.0黑科技解密 | 别眨眼,缩小隧道,让你的AI模型“身轻如燕”
- ubuntu-18.10 允许 root登录图形界面
- python软件下载安装中文版-Python3.7.6下载
- NetFlow基础:网络流量监控简介
- 安卓手机软件性能测试,手机性能评测软件
- 响应函数 handlers
- 音频频谱图(自定义View——进阶篇2)
- ins的更新带来的一系列问题
- 如何执行存储过程以及如何进行调试?
- android APP内显示PDF文件
- 【PaddleSpeech-学习笔记】第七章:声音合成