class Test
{
public static void main(String[] args) {
String ta ="";
Scanner sc = new Scanner(System.in);
System.out.print("请输入个数:");
int num = sc.nextInt();
for(int x =1;x<=num;x++)//添加圆盘。
ta = ta+x;
System.out.println("请输入初始、终止位置,用甲、乙、丙来表示,并且逗号隔开:");
Scanner sc1 = new Scanner(System.in);
String s = sc1.nextLine();
String start = s.substring(0, s.indexOf(','));
String end = s.substring(s.indexOf(',')+1);
String[] str = {"甲","乙","丙"};//将三根柱子记为"甲","乙","丙"
jieGuo(ta,start,end,str);
}
private static void jieGuo(String ta, String start, String end, String[] str) {
String mid = "";
for(int x = 0;x<str.length;x++)//确定过渡柱子是哪一根。
if(!(str[x].equals(end))&&!(str[x].equals(start)))
mid = str[x];
if(ta.length()>0){
jieGuo(ta.substring(0, ta.length()-1),start,mid,str);//将上部分移动到过渡柱子
System.out.println(ta.charAt(ta.length()-1)+"移动到"+end);//将下部分移动到目的柱子
jieGuo(ta.substring(0, ta.length()-1),mid,end,str);//将上部分移动到目的柱子。
}
}
}
|