dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>java基础>文章内容
汉诺塔java算法整理
来源: 作者:

package hello;

class Hanoi1
{
 private int c;
 public Hanoi1()
  {c=0;}
 //把getme最上面的盘子移动到putone位置
 public void move(char getme,char putone)
  {   c=c+1;  //我们每移动一步,就计数一次
   System.out.println(getme+"-->"+putone+"  搬盘次数为:"+c);
  }
    //n个盘子,one,two,three分别为第一,第二,第三个柱子。
 //现在在柱子one上一共有n个盘子,这个函数能够通过two把它移动到three上面。
 public void hanoi(int n,char one,char two,char three)
  { if(n==1) 
    move(one,three);//如果,就一个盘子,把第一个柱子上的盘子,放到第三个上面
    else{
      //如果大于一个盘子呢
       hanoi(n-1,one,three,two); //先想办法把one柱子上的前n-1个移动到柱子two上
    move(one,three);    //然后把one柱子上的第n个移动到柱子three上。
    hanoi(n-1,two,one,three); //然后想办法把two柱子上的n-1个移动到three上。
    }
  }
 }

public class Hanoi
{
 public static void main(String args[])
  {int n=4;
  System.out.println("搬"+n+"个盘数的步骤:");
  Hanoi1 a=new Hanoi1();
  a.hanoi(n,'A','B','C');
}
}


上一篇:关于递归问题的求助!   下一篇:Flex中的MySQL管理
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·JUnit单元测试(2)
·JUnit单元测试(1)
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·对于JAVA基础测试中常见的异常问
·JAVA程序员面试33问,你能回答多
·Java Reflection (JAVA反射)详解
·JAVA中配置环境变量设置方法大全
·讲述java语言中内部类的研究
·详细解析Java中抽象类和接口的区
·Java开发中的事件驱动模型实例详
  相关文章
·mysql修改字段长度(sql)
·计算两个时间戳型的时间差
·Log4j的使用
·Java Clone机制
·Java中的instanceof运算符
·学习心得:Java为什么支持反射机
·发邮件的JAVA程序
·穿透Socks5 代理的UDP编程
·Java解析网络数据流的三种特殊方
·Java 在Client/Server 网络中的
·Java中的SOAP技术
·Java 7的并行支持:Fork/Join
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763