问题:
现在有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动?
我的答案:
public class Hannuota {//汉诺塔,将a上的移到c上
/**
* @param args
*/
static int s=0;//统计移动次数
public static void main(String[] args) {
// TODO Auto-generated method stub
han(1,'a','b','c');
System.out.println(s);
}
static void han(int n,char a,char b,char c){
if(n==1){
move(a,c);
s++;
}
else{
han(n-1,a,c,b);
move(a,b);
han(n-1,c,b,a);
s++;
}
}
static void move(char x,char y){
System.out.println(x+"-->"+y);
}
}