共計 592 個字符,預計需要花費 2 分鐘才能閱讀完成。
以下是一個使用 Java 實現漢諾塔問題的示例代碼:
public class HanoiTower {public static void main(String[] args) {int n = 3; // 漢諾塔的層數
char from = 'A'; // 起始柱子
char to = 'C'; // 目標柱子
char aux = 'B'; // 輔助柱子
hanoi(n, from, to, aux);
}
public static void hanoi(int n, char from, char to, char aux) {if (n == 1) {System.out.println(" 移動盤 " + n + " 從 " + from + " 到 " + to);
} else {hanoi(n - 1, from, aux, to);
System.out.println(" 移動盤 " + n + " 從 " + from + " 到 " + to);
hanoi(n - 1, aux, to, from);
}
}
}
在上面的代碼中,hanoi
方法使用遞歸來實現漢諾塔問題的解決。當只有一個盤子時,直接將盤子從起始柱子移動到目標柱子。當有多個盤子時,將上面的 n-1
個盤子從起始柱子移動到輔助柱子,然后將最大的盤子從起始柱子移動到目標柱子,最后將之前移動到輔助柱子的 n-1
個盤子移動到目標柱子。通過遞歸調用,不斷縮小問題的規模,最終完成整個漢諾塔問題的解決。
丸趣 TV 網 – 提供最優質的資源集合!
正文完