91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
定州市| 青河县| 西安市| 平果县| 邢台市| 桂阳县| 汕尾市| 靖江市| 泰州市| 甘泉县| 武陟县| 阿勒泰市| 镇雄县| 滁州市| 西宁市| 黎川县| 华宁县| 廊坊市| 全南县| 米易县| 新泰市| 灵璧县| 江山市| 奈曼旗| 东乡| 安西县| 察隅县| 安多县| 兴宁市| 南乐县| 保亭| 合江县| 来安县| 绍兴县| 同心县| 宁波市| 疏附县| 永丰县| 千阳县| 宽甸| 临西县|