我正在通过Java编程简介全面介绍第9版和我有一个关于递归函数和计数器的问题。我如何将计数器添加到此程序中?即当我们打印出必须制作的电影时,如何才能让节目打印出它将发生什么变化?河内塔(递归)
示例输出
转到1磁盘1至C
转到2磁盘2至B
程序:
public class Test {
public static void main(String[] args) {
int n = 3; // Number of disks
System.out.println("Tower of hanoi with " + n + " disks");
TowerHanoi(n, "A", "B", "C"); // Space A is the initial position, B is the storage position, and C is the final destination
}
public static void TowerHanoi(int numDisk,String towerStart, String towerStor, String towerDest) {
if (numDisk == 1) { // Moves disk 1
System.out.println("Disk " + numDisk + " to " + towerDest);
}
else if (numDisk != 1) {
TowerHanoi(numDisk - 1, towerStart, towerDest, towerStor); // Moves a disk from the starting tower to the destination tower
System.out.println("Disk " + numDisk + " to " + towerDest);
TowerHanoi(numDisk - 1, towerStor, towerStart, towerDest); // Recursive call, moves disk from storage to destination
}
}
}
我是不是假设正确,这本书还没有讨论的对象,所以你不知道,对象是如何工作的?如果是这样,有一个一般的方法:重新设计方法的特征,给它一个额外的参数。然后修改方法的主体。 – Turing85