a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 127|回复: 0

[专业语言] Java认证备考辅导之关于汉诺塔递归算法

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
Java认证备考辅导之关于汉诺塔递归算法  g( d: q. B" d* {5 v( }
有三根柱子A,B,C,A柱子上有N个盘子,从小到大依次叠放,要求把A上的盘子都移到C上,B可以作为临时存放,移动的时候必须始终遵循小盘子在大盘子上面,且% t8 B2 w" @5 T% t$ @  m5 t3 }. M
每次只能移动一个盘子,求其算法。用java实现如下:
) W1 X1 \' b# c- {! F/ Qpublic class move{. M/ D; u% M1 L
public static void main(String [] args){
3 O) n/ J& I! S+ s0 K0 y$ }move(4,‘a’,‘c’,‘b’);
8 k; S  l: K$ \7 I% e8 ^9 O}
, }6 D3 W9 I5 ~( W# k, B3 N//参数n表示移动count个盘子,src表示本来放盘子的,mid是临时存放盘子的,trag是最终目的7 n! c" f. g% O
public static void move(int count,char src,char trag,char mid){
3 \  o/ B7 J% _- y. R  dif(count==1){% |5 v! }5 k  Q. t$ F5 e
System.out.println(src+“---------》”+trag);4 q7 G: @  f: ~0 c: a" g
}else{2 h1 x+ H" e  C) E0 ^+ E) T
move(count-1,src,mid,trag);
' i: _2 E) _; Y' u; Y6 D0 }System.out.println(src+“---------》”+trag);$ Q( T9 Z2 U$ @* U, g
move(count-1,mid,trag,src);: @' k  r  ~" }, P8 c0 Z
}( I% o) ?7 q! w- o/ @: o' E
}
' @2 r3 D- g+ d6 a6 x2 U( b}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-10 05:29 , Processed in 0.203636 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表