大家晚上好,
我有一个关于我的班级正在做的关于递归的家庭作业的快速问题。我们的想法是我们有这个河内塔程序,我们需要编写一个主程序来制作一个表格,显示数字 5-25,以及解决那个大小的塔需要多少步,例如
5 ---- 31 步
6 ---- 63 步
ETC...
我在这样做时遇到了一些麻烦,因为 TowersOfHanoi 课程设置为打印出每一步,我认为我们不应该摆脱它,但我不太确定。
这是 TowersOfHanoi 课程
public class TowersOfHanoi {
private int totalDisks;
private int count;
public TowersOfHanoi(int disks) {
totalDisks = disks;
count = 0;
}
public void solve() {
moveTower (totalDisks,1,3,2);
}
private void moveTower(int numDisks, int start, int end, int temp) {
if (numDisks ==1) {
moveOneDisk(start,end);
}
else {
moveTower (numDisks-1, start, temp, end);
moveOneDisk (start, end);
moveTower (numDisks-1, temp, end, start);
}
}
private void moveOneDisk(int start, int end) {
count = count+1;
System.out.println("Move one disk from "+start+" to "+end+" - Move "+count);
}
}
现在我只需要编写一个 main 来创建该表,而无需打印出每个塔的每一个动作,但我不确定如何去做。任何帮助深表感谢