我正在通過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