import java.util.Scanner;
public class HanNouTa {
static int index=0;
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String a="A";//A柱子
String b="B";//B柱子
String c="C";//C主子
while(true){
System.out.println("请输入你想要汉诺塔几个圆盘:");
int frequency=scanner.nextInt();//调输入打印的次数
hanNouTa(frequency,a,b,c);//调用汉诺塔方法
System.out.println(index);//打印打印的次数
}
}
public static void hanNouTa(int Frequency, String Azhu, String Bzhu, String Czhu ) {
if (Frequency == 1) {//采用递归的方法当期等于一时将A柱子上的圆盘放到B柱子上
move(Azhu,Bzhu);
}
else {
//A往B上移动
hanNouTa(Frequency-1, Azhu ,Czhu,Bzhu);//递归一次
move(Azhu,Bzhu);//递归一次之后放置一次
hanNouTa(Frequency-1, Czhu, Bzhu, Azhu );//递归交
}
}
public static void move(String A,String C){
System.out.println(A+"移动到"+C);//防止一次打印一次
index++;
}
}