有三根柱子A,B,C,A柱子上有N个盘子,从小到大依次叠放,要求把A上的盘子都移到C上,B可以作为临时存放,移动的时候必须始终遵循小盘子在大盘子上面,且
每次只能移动一个盘子,求其算法。用java实现如下:
public class move{
public static void main(String [] args){
move(4,’a’,’c’,’b’);
}
//参数n表示移动count个盘子,src表示本来放盘子的,mid是临时存放盘子的,trag是最终目的
public static void move(int count,char src,char trag,char mid){
if(count==1){
System.out.println(src+”———>”+trag);
}else{
move(count-1,src,mid,trag);
System.out.println(src+”———>”+trag);
move(count-1,mid,trag,src);
}
}
}
我不敢说我可以忘却,或者勇敢,坚强,等等等等一切堂皇而陈旧的字眼。