汉诺塔实现c与java

原创 2007年10月11日 06:54:00

 老师让用java实现汉诺塔,网上搜索了一篇C的实现,与大家共享:

下面是java

import java.io.*;
public class HanNuoTa{

  public static void main(String[] args) throws IOException{

    System.out.println("请输入你要移的盘的总数:");

    int n =(int) System.in.read();

    char a = 'A', b = 'B', c = 'C';

    hanio(n, a, b, c);

  }

  public static void hanio(int n, char a, char b, char c) {

    if (n == 1) {  //如果只有一个盘子则直接把盘子从a 移到b

      System.out.println("move " + a + " to " + b);

    }

    else { //超过一个盘子的情况

      hanio( (byte) (n - 1), a, c, b); //将a杆上n-1个盘子借助于b先移到c杆

      System.out.println("move " + a + " to " + b); //将a杆上第n个盘子从a移到b杆

      hanio( (byte) (n - 1), c, b, a); //将c杆上n-1个盘子借助a移到b杆

    }

  }

}

 

下面是C:

void he(char x,char y)
{ printf("%c---->%c/n",x,y);
}
void she(int n,char first,char second,char third)
{
if(n==1)he(first,third);
 else
 {she(n-1,first,third,second);
 he(first,third);
 she(n-1,second,first,third);
 }
}
main()
{
int x;
printf("input the number of diskes:");
scanf("%d",&x);
printf("the step to moving %3d diskes:/n",x);
she(x,'A','B','C');
}

 

 

汉诺塔递归的c语言实现(递归)

对于递归来讲, 汉诺塔实际是经典到不能再经典的例子了,   每个数据结构的教材对会提到.      但是到最后只给出一段类似下面的一段代码: #include void move(int ...
  • nvd11
  • nvd11
  • 2013年04月29日 03:38
  • 5074

用C语言栈的方式求解汉诺塔游戏

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序...
  • bboyliaoye
  • bboyliaoye
  • 2013年12月13日 11:52
  • 1916

c语言经典问题:汉诺塔 Hanoi问题

这个问题使用递归思想是比较靠谱的,如果
  • zyb050607
  • zyb050607
  • 2014年06月24日 17:01
  • 1995

四柱加强版汉诺塔HanoiTower----是甜蜜还是烦恼

我想很多人第一次学习递归的时候,老师或者书本上可能会举汉诺塔的例子。 但是今天,我们讨论的重点不是简单的汉诺塔算法,而是三柱汉诺塔的延伸。先来看看经典的三柱汉诺塔。   一、三柱汉诺...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年01月18日 15:48
  • 1664

Java经典编程300例之实例047 汉诺塔问题求解(递归)

实例说明 汉诺塔问题的描述如下:有A、B和C 3跟柱子,在A上从下往上按照从小到大的顺序放着64个圆盘,以B为中介,把盘子全部移动到C上。移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大...
  • HanTangSongMing
  • HanTangSongMing
  • 2014年07月11日 09:19
  • 8861

java实现汉诺塔算法

package com.ywx.count; import java.util.Scanner; /**  * @author Vashon  * date:20150410  *   * 题...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2015年04月10日 14:14
  • 3428

分治算法--汉诺塔问题

一、问题描述 1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上二、问题分析 将A盘中的若干个盘子分为两部分,下面一个,...
  • ydx115600497
  • ydx115600497
  • 2016年11月15日 16:47
  • 453

三.栈与栈的实例——汉诺塔

1.栈 First In Last Out,顺序栈和链栈,六种方法,声明使用方式。 1.1 概论 栈,是一个先进先出的一个数据结构。如图: 1.2 顺序栈和链栈 顺序栈就是一般的栈。 链栈就是使用...
  • u013254061
  • u013254061
  • 2016年09月12日 16:13
  • 1580

汉诺塔:动画过程绘制实现

Tower of Hanoi 状态空间算法 动画绘制实现 C语言
  • Geek_Dream
  • Geek_Dream
  • 2016年11月13日 16:01
  • 1278

"汉诺塔"算法-之通俗易懂,简单的原理-java编程

1.汉诺塔 2.三步曲 3.递归
  • nzfxx
  • nzfxx
  • 2016年06月04日 14:22
  • 5779
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汉诺塔实现c与java
举报原因:
原因补充:

(最多只允许输入30个字)