1223: 输出汉诺塔问题的盘子移动步骤(Java)
一、题目
http://acm.wust.edu.cn/problem.php?id=1223&soj=0
二、代码
import java.util.*;public class Main {Scanner in = new Scanner(System.in);int step, n; // step移动的步数,n盘子个数/*** 构造方法*/public Main() {while(in.hasNext()){// 每次都重置为第一步step = 1;// 输入盘子个数n = in.nextInt();// 将n个盘子从A柱子移动到C柱子hanoi(n, 'A', 'B', 'C');// 每组数据空一行System.out.println();}}/*** @param n 盘子个数* @param A 当前状态的第一根柱子* @param B 当前状态的第二根柱子* @param C 当前状态的第三根柱子*/public void hanoi(int n, char A, char B, char C) {// 最后一个盘子直接从A柱子移动到C柱子if(1 == n) {move(A, C);} else {// 将上面n-1个盘子从A柱子移动到B柱子hanoi(n - 1, A, C, B);// 将最下面的盘子从A柱子移动到C柱子move(A, C);// 将B柱子上的n-1个盘子移动到C柱子hanoi(n - 1, B, A, C);}}/*** 将盘子从x柱子移动到y柱子* @param x 盘子的源柱子* @param y 盘子的目的柱子*/public void move(char x, char y) {System.out.println("Case #" + step + ": from " + x + " to " + y + ".");step++; // 步数加1}public static void main(String[] args) {new Main();}}
三、截图
转载于:https://www.cnblogs.com/wowpH/p/11060844.html
1223: 输出汉诺塔问题的盘子移动步骤(Java)相关推荐
- 输出汉诺塔的移动步骤
对于汉诺塔问题的求解,可以通过以下三个步骤实现: 将塔A上的n-1个碟子借助塔C先移到塔B上. 把塔A上剩下的一个碟子移到塔C上. 将n-1个碟子从塔B借助塔A移到塔C上. #include < ...
- 数据结构--汉诺塔--借助栈实现非递归---Java
1 /*汉诺塔非递归实现--利用栈 2 * 1.创建一个栈,栈中每个元素包含的信息:盘子编号,3个塔座的变量 3 * 2.先进栈,在利用循环判断是否栈空, 4 * 3.非空情况下,出栈,检查是否只有一 ...
- 汉诺塔(Hanoi)移动步骤问题
汉诺塔 (Hanoi) 规则:把n个盘子从A柱,移动到C柱,中间可以使用B柱,把移动的步骤及移动的步数打印出来.( 递归方法 ) #include <stdio.h>int step = ...
- Python模拟汉诺塔问题移动盘子的过程
据说古代有一个梵塔,塔内有三个底座A.B.C,A座上有64个盘子,盘子大小不等,大的在下,小的在上.有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,在移动盘子的过程中可以利用B座 ...
- python汉诺塔运行程序_用python编写一个程序,得到汉诺塔的解决方案
古代有一座汉诺塔,塔内有3个座A.B.C,A座上有n个盘子,盘子大小不等,大的在下,小的在上,如图所示. 有一个和尚想把这n个盘子从A座移到C座,但每次只能移动一个盘子,并且自移动过程中,3个座上的盘 ...
- BZOJ 1019: [SHOI2008]汉诺塔( dp )
dp(x, y)表示第x根柱子上y个盘子移开后到哪根柱子以及花费步数..然后根据汉诺塔原理去转移... ------------------------------------------------ ...
- bzoj 1019: [SHOI2008]汉诺塔(打表)
1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1770 Solved: 1079 [Submit][Stat ...
- $bzoj1019-SHOI2008$ 汉诺塔 $dp$
题面描述 汉诺塔由三根柱子(分别用\(A\ B\ C\)表示)和\(n\)个大小互不相同的空心盘子组成.一开始\(n\)个盘子都摞在柱子\(A\)上,大的在下面,小的在上面,形成了一个塔状的锥形体. ...
- 汉诺塔原理超详细讲解+变式例题
目录 一.汉诺塔详解 1.详解 2.完整代码 二.汉诺塔公式:ans=2^n^-1 1.例题:P1760 通天之汉诺塔 三.变式1:牛牛的汉诺塔 四.变式2:P4285 [SHOI2008]汉诺塔 A ...
最新文章
- Nginx源码分析:启动流程
- VC#版DirectX开发入门详解
- 策划文档html,html代码整理.doc
- java编译时多态和运行时多态_运行时多态、编译时多态和重载、重写的关系(不区分Java和C#,保证能看懂!)...
- Node.js 使用axios读写influxDB
- mysql的主键有什么作用_mysql设置主键有什么用
- 覆盖所有面试知识点,送大厂面经一份!
- Support for the experimental syntax 'dynamicImport' isn't currently enabled
- 统计天数(洛谷-P1567)
- canvas基础之旅
- 【HNOI2004】L语言
- python print rdd_spark: RDD与DataFrame之间的相互转换方法
- 密码需要带特殊字符(二)
- AFNetworking-RequestSerializer
- Java程序性能优化:让你的Java程序更快、更稳定
- win10 外接usb摄像头_win10系统外接摄像头不能用怎么办
- 如何将图片文字转换成word
- 基于XPDL2.0的过程定义
- 复杂网络基础概念总结
- 大数据分析-智能消息推送策略
热门文章
- sql 优化之关于null 和数据类型
- python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...
- 学python以后是做什么工作-对话极客晨星:现在学Python 长大可以从事什么工作?...
- 有没有通俗易懂的python课程-有没有简单易懂的入门级Python辅导书或网络课程?...
- python爬虫代码房-Python爬虫一步步抓取房产信息
- python表白-情人节来了,教你个用 Python 表白的技巧
- python使用函数的优点-原来 Python 还有这些实用的功能和特点!
- python教程实例-python教程实例
- python语言是谁发明的咋读-Python简史
- python之父-Python之父宣布退休,但Python仍在吞噬世界