亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java怎么解決漢諾塔問題

小億
83
2024-09-26 03:47:06
欄目: 編程語言

漢諾塔問題是一個經典的遞歸問題

  1. 首先,我們需要定義一個漢諾塔的類,其中包含三個變量:源柱子(source)、輔助柱子(auxiliary)和目標柱子(target)。
public class HanoiTower {
    private int source;
    private int auxiliary;
    private int target;

    public HanoiTower(int source, int auxiliary, int target) {
        this.source = source;
        this.auxiliary = auxiliary;
        this.target = target;
    }
}
  1. 接下來,我們需要定義一個遞歸方法moveDisk,該方法接受四個參數:漢諾塔對象、源柱子上的磁盤數量、輔助柱子和目標柱子。
public void moveDisk(HanoiTower tower, int n, int from, int to, int via) {
    if (n == 1) {
        System.out.println("Move disk 1 from " + from + " to " + to);
    } else {
        moveDisk(tower, n - 1, from, via, to);
        System.out.println("Move disk " + n + " from " + from + " to " + to);
        moveDisk(tower, n - 1, via, to, from);
    }
}
  1. 最后,我們可以在主方法中創建一個漢諾塔對象,并調用moveDisk方法來解決問題。
public class Main {
    public static void main(String[] args) {
        HanoiTower tower = new HanoiTower(1, 2, 3);
        moveDisk(tower, 3, 1, 3, 2);
    }
}

運行上述代碼,你將看到解決3個磁盤漢諾塔問題的詳細步驟。你可以通過更改moveDisk方法的第一個參數來改變磁盤的數量。

0
基隆市| 鄯善县| 喀喇| 隆林| 柘荣县| 连南| 丹东市| 马龙县| 拜泉县| 伊通| 旅游| 抚宁县| 永安市| 兖州市| 敖汉旗| 吴江市| 晋江市| 广元市| 日土县| 洛扎县| 丹凤县| 平塘县| 平南县| 南澳县| 尤溪县| 鄂温| 鹤庆县| 洛川县| 新安县| 绥芬河市| 牡丹江市| 三江| 雷州市| 雷波县| 濉溪县| 昂仁县| 普兰店市| 宕昌县| 闵行区| 黄冈市| 建水县|