汉诺塔问题的进一步设计 将递归函数程序中的直接打印语句也设计成调用递归函数towers()。直接打印语句如下: System.out.println("圆盘 " + n + " 从柱子 " + A + " 移动到柱子 " + C); =,-怎么解啊下面是普通的汉诺塔代码
public class Exam6_3{
public static void towers(int n, char A, char C, char B){
if(n == 1){
System.out.println("圆盘 1 从柱子 " + A + " 移动到柱子 " + C);
return;
}
towers(n-1, A, B, C); // 先让道:n-1个圆盘移动到柱子B
System.out.println("圆盘 " + n + " 从柱子 " + A + " 移动到柱子 " + C);
towers(n-1, B, C, A); // 再自己:n-1个圆盘移动到柱子C
} public static void main(String[] args){
System.out.println("柱子: A B C");
System.out.println("n = 3");
towers(3, 'A', 'C', 'B');
}
}
public class Exam6_3{
public static void towers(int n, char A, char C, char B){
if(n == 1){
System.out.println("圆盘 1 从柱子 " + A + " 移动到柱子 " + C);
return;
}
towers(n-1, A, B, C); // 先让道:n-1个圆盘移动到柱子B
System.out.println("圆盘 " + n + " 从柱子 " + A + " 移动到柱子 " + C);
towers(n-1, B, C, A); // 再自己:n-1个圆盘移动到柱子C
} public static void main(String[] args){
System.out.println("柱子: A B C");
System.out.println("n = 3");
towers(3, 'A', 'C', 'B');
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货