求解汉诺塔问题
public class Test {
public static void move(char pos1,char pos2){
System.out.print(pos1+"->"+pos2+" ");
}
public static void hanNuoTa(int n,char pos1,char pos2,char pos3) {
if(n==1){
move(pos1,pos3);
return ;
}
hanNuoTa(n-1,pos1,pos3,pos2);
move(pos1, pos3);
hanNuoTa(n-1,pos2,pos1, pos3);
}
public static void main(String[] args) {
hanNuoTa(3,'A','B','C');
}
}
代码片
运行截图
ps:如果是n个盘子,则需要移动2^n-1次。
在java中,单引号引用的数据是char类型,双引号引用的数据是string类型。