问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java实现汉诺塔的代码,求注释,具体到每一行代码,急求,,,

发布网友 发布时间:2022-04-30 16:11

我来回答

1个回答

热心网友 时间:2022-06-27 03:59

这样应该可以了
如果还有那个地方不懂的,建议你研究下汉诺塔算法
import
java.io.BufferedReader;//引入IO包中的BufferedReader
import
java.io.IOException;//引入IO包中的IO异常处理
import
java.io.InputStreamReader;//引入IO包中的InputStreaReader
public
class
Hinoi
{
//主类
static
int
m=0;//定义移动的次数
//主程序入口--main方法
public
static
void
main(String[]
args)
{
//创建BufferedReader对象,InputStream输入流
BufferedReader
bf
=
new
BufferedReader(new
InputStreamReader(System.in));
System.out.println("请输入盘子的个数:");
try
{
int
sl
=
Integer.parseInt(bf.readLine().toString());//接收总盘子个数
toMove(sl,"A","B","C");//调用移动方法
A-->C
}
catch
(NumberFormatException
e)
{捕获NumberFormatException异常
//
TODO
Auto-generated
catch
block
e.printStackTrace();//打印异常
}
catch
(IOException
e)
{//捕获IOException异常
//
TODO
Auto-generated
catch
block
e.printStackTrace();//打印异常
}
System.out.println("总共移动了:"+m+"
次数");//打印移动次数
}
//移动方法
private
static
void
toMove(int
sl,
String
one,
String
two,String
three)
{
if(sl==1){//如果只有一个盘子,则直接移动到C柱
System.out.println("盘子"+sl+"

"+one+"---->"+three);
}else{//如果总盘数大于1,则递归调用移动方法
//把所有的数量为sl-1的盘子全部从A移到到B(C作为一个过渡),好提供一个最下面的位置给最大盘子到C;
toMove(sl-1,one,three,two);
System.out.println("盘子"+sl+"

"+one+"---->"+three);
//把所有的剩余的盘子从B移动到C(A作为一个过渡)
toMove(sl-1,two,one,three);
}
m++;
}
}
求java汉诺塔源代码的注解(急!)

import java.awt.*;public class TowerPoint //公共类TowerPoint { int x,y; //定义2个int类型的变量 boolean 有盘子; //定义一个boolean类型的变量 Disk 盘子=null; //初始化一个对象"盘子"并赋值为空 HannoiTower con=null; //初始化一个HannoiTower类的对象"con"并赋值为空 public TowerPo...

求java版汉诺塔的演示程序

源代码:/ 本程序完成的功能是利用汉递规算法实现汉诺塔的动态演示程序 / import javax.swing.*;import java.awt.geom.*;import java.awt.event.*;import java.awt.*;public class Hanio extends JApplet implements ActionListener, Runnable { / diskNum是盘子的数量 / private int diskNum ;/ 各...

跪求魔塔60层JAVA源代码,不是网页的,谢谢!

//汉诺塔的问题public class MT {public static void main(String args[]){int x=10;doit(x,1,2,3); //把10个盘子从1柱借助3柱移动到2柱,在此用60的太多了,计算机会太累的}public static void doit(int x,int a,int b,int c){//把X个盘子从A柱借助C柱移动到B柱if (x==1){S...

小学四年级河内塔问题!!!火急!!!火急!!!火急!!!

汉诺塔问题的递归Java语言实现 import java.util.Scanner; public class HanoiTest { public static void hanoi(int level,String a,String b,String c){ if(level==1) move(1,a,c); else { hanoi(level-1,a,c,b); move(level,a,c); hanoi(level-1,b,a,c); } } static void move(int level,...

JAVA中能够实现方法的递归调用吗?如何实现?

能 递归函数即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身。递归调用又分为直接调用和间接调用 直接调用funca(){ ... funca();};间接调用;funca(){ ... funcb();}funcb(){ ... funca(); ...} 汉诺塔源码public class HanoiY { ...

java中递归的作用是什么?为什么要用到递归?

递归的作用:递归算法可以解决一些通过递归定义的题目。首先需要明白什么是递归定义的题目,通俗一点来说就是一个大问题中蕴含着小问题,而小问题同时又与大问题的结构相同,只是规模更小。比如n阶乘的定义可以理解为:n!= n*(n-1)!从上面不难看出 (n-1)! 就是比n! 规模更小的问题,按照此...

Java经典编程300例的目录

第1章 Java语言概述 1实例001 输出“Hello World” 2实例002 输出控制台传递的参数 2实例003 输出由“*”组成的三角形 3实例004 输出符号表情 5第2章 Eclipse开发工具 6实例005 下载并运行Eclipse工具 7实例006 为Eclipse安装汉化包 8实例007 使用Eclipse注释代码 10实例008 使用Eclipse格式化代码 11实例009 安装...

JAVA程序经常用到“递归”,“递归”的基本思想是

所以代码上就体现为这个函数会不断的调用自身。还有一点,并不是所有的递归都是可以实现的,或者说有意义的。如果在分解的过程中,问题最终不能分解到一个可以直接解决的问题,则这个过程是没有意义,也就是无限的循环。具体的代码都不贴了,有兴趣可以百度看看。

高分悬赏Java程序,急!!!

import java.awt.event.*; //俄罗斯方块类 public class ERS_Block extends Frame{ public static boolean isPlay=false; public static int level=1,score=0; public static TextField scoreField,levelField; public static MyTimer timer; GameCanvas gameScr; public static void main(String[] ...

谁能说说JAVA的递归是什么意思?

【5】在做递归算法的时候,一定把握出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口就是一个条件,当满足了这个条件的时候我们就不再递归了。三、示例程序:使用Java代码求5的阶乘。(5的阶乘=5*4*3*2*1)[java] view plain copy package org.wxp....

java单行注释和多行注释 java代码的注释有几种 java代码注释的位置 java实现汉诺塔 java代码注释放在哪 java代码注释规范 java的单行注释 java代码注释师范 java计算器代码带注释
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小寒的寓意和象征是什么 小寒节气到来意味着啥 学园艺专业的大专生是否能报考公务员 离婚后不给子女抚养费怎么办 民法典规定离婚后不给抚养费应怎么办 在离婚后抚养费不给怎么办 QQ空间日志发表图片怎么设置在图片上一点击能链接另一个网站? 如何在QQ空间个人档空间资料里建立超链接? 福彩3D八卦图怎么看? - 知乎 ...需要签合同3年,如果期间不想干了,需要赔违约金吗,赔多少呢?_百度知 ... 公益性岗位 甲方单方面解除合同 有无的赔偿 汉兰达两年近4w公里需要清洗节气门吗 惊天动地66级的任务 磁场强度分别是矢量还是标量,为什么 如何用java实现汉诺塔中的递归 丰田汉兰达洗节气门要排空气吗 西安在哪个网站上可以查询到商品房的房产证办理进度?谢谢! 偷梁换柱上屋顶打一生肖。十八少年打篮球打一生肖。偷梁换柱上屋顶猜一生肖。十八少年打篮球猜一生肖 磁感应强度是矢量还是标量? 急求Java 汉诺塔 编程!! GMail邮箱一次能上传多大的文件 汉兰达费油洗节气门管用吗 瀑布王半自动洗衣机注水时一直排水是什么问题 磁场强度分别是矢量还是标量,为什么>??? JAVA汉诺塔 2017西安住房购房资格申请资料及申报程序 英雄联盟默认视频设置是什么 Gmail邮箱上传附件最大是多少? 晚上侧着睡会产生眉间纹吗 汉兰达为什么清洗节气门后费油? 怎样用Java编写汉诺塔程序 gmail邮箱最大附件容量? 小天才Q1A网络很卡 三男一女打篮球 猜一个生肖是什么 西安市高新区房管局官方网站 java新手汉诺塔问题最终的输出结果如下(问题规模为3),其中盘子的编号是汉诺塔问题中从上到下的顺序。 磁感应强度到底是矢量还是标量啊?为什么看了几本参考书,有的说是标量,有的说是矢量? 如何清洗汉兰达节气门 这是Towers of Hanoi问题的Java方法,请高手解释一下 我以前的qq密码找不回来怎么办 为什么速度是矢量? 磁场强度与电流强度是矢量吗?为什么? 矢量和标量都包括什么? 去饭店点个菜 半天都不上 只好叫服务员 给我来壶开水 充充饥吧 可她却给我回了句 先生您还真爱干净 小天才z1s内存会不够用吗? javajava中如何实现汉诺塔的编程,请求简单一点,本人才学java一年多,新手! 汉兰达清洗完节气门怠速还不稳 google邮箱能发多大的附件 磁场强度是矢量,而磁感应强度是标量!这句话正确吗? 棒棒堂六棒名字 JAVA汉诺塔问题,要求定义类之后 谁知道我爱罗所有的出场集数 JAVA 汉诺塔