怎样用Java编写汉诺塔程序
发布网友
发布时间:2022-04-30 16:11
我来回答
共2个回答
热心网友
时间:2022-06-27 03:59
package Hanoi;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Hanoi {
public static void main(String args[]) throws IOException {
Hanoi aa = new Hanoi();
aa.go();
}
public void go() throws IOException {
int n;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入盘数:");
n = Integer.parseInt(buf.readLine());
Hanoi hanoi = new Hanoi();
hanoi.move(n, 'A', 'B', 'C');
}
public void move(int n, char a, char b, char c) {
if (n == 1) {
System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
} else {
move(n - 1, a, c, b);
System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
move(n - 1, b, a, c);
}
}
}
热心网友
时间:2022-06-27 03:59
用递归 , 就是自己调用自己方法的那种
package test;
public class test {
public static void main(String args[])
{
System.out.println(method(4));
}
public static int method(int n)
{
System.out.println(n);
if(n==1){
return 1;
}
else
{
return n*method(n-1);
}
}
}
求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 java.awt.*;import java.io.*;import java.awt.event.*;public class Hanoi { public static void main(String args[]) throws IOException { Hanoi aa = new Hanoi();aa.go();} public void go() throws IOException { int n;BufferedReader buf;buf = new BufferedReader(new Input...
求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 ;/ 各个组件的...
java汉诺塔(河内塔)问题。解释一下汉诺塔为3时怎么想
你把1,2盘看成一个特殊的盘。所以现在n=2,当n=2时,需先把1盘移动到B塔中,把1-3步一起看,作用即把特殊盘移动至B。然后把3盘移动至C塔,即第4步。最后,把特殊盘移动到C塔上,同样把5-7步一起看,达到的效果即把特殊盘移动至C盘,完成!!等于4的时候 ,其实就是把123盘看成特殊盘...
小学四年级河内塔问题!!!火急!!!火急!!!火急!!!
(level+"层:"+a+"--->"+b); } public static void main(String[] args) { Scanner sc = new Scanner();//括号中是输入,提交不上去所以就没写 System.out.println("请输入汉诺塔的层数:"); int n = sc.nextInt(); System.out.println(n + "层汉诺塔的解法是:"); hanoi(n,"A","B","C"...
JAVA中能够实现方法的递归调用吗?如何实现?
直接调用funca(){ ... funca();};间接调用;funca(){ ... funcb();}funcb(){ ... funca(); ...} 汉诺塔源码public class HanoiY { void Move(char chSour,char chDest){ System.out.println("Move the top plate of "+chSour+"-->"+chDest...
考“软考”的软件设计师,该看什么书?
对C语言要非常熟练(要会应用C语言语句的一些技巧,如可以利用函数的返回值做为判定条件,在循环中对数组的处理可使用a[i++]来提高编写代码的效率,这类的小技巧只有通过大量的阅读代码才能提高),如果是初学面向对象方面的高级语言,建议还是先学C++,感觉它更象一种语言规范,而Java是一种编程的工具...
JAVA程序经常用到“递归”,“递归”的基本思想是
如果使用递归的思维,过程就是这样的,要求1+1/2+1/3+...+1/n的值,可以先求s1=1+1/2+1/3+...+1/(n-1)的值,再用s1加上1/n就是所求的值,而求s1的过程又可以使用上面的分解策略继续分解,最终分解到求1+1/2的值,而这个问题简单到我们可以直接解决,自此问题得到解决。递归强调的...
高分悬赏Java程序,急!!!
参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须注册)。 2.五子棋双人对弈程序。要求: •按开始按钮双方开始下棋,当在已经下棋的位置放子时提示信息 •一方赢时提示 3.一个扫雷程序,基本要求如同win 98中的扫雷。 4.或者以下项目,每组选定一个题目。
求高手用c++解决二十四点的问题,具体如下
写算法我首选的语言还是c++,但是很惭愧c++的HashTable我不会用,因此用java写了一个版本,还算比较成功,能输出最终的结果。在写程序前我写了一个小程序来测试java的HashSet和ArrayList的查找效率,结果很令人惊讶。在10000次查询中,HashSet所用时间为0ms,而ArrayList则用了1300多ms,看来这个效率完全不是一个数量级上...