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

溫馨提示×

c語言漢諾塔遞歸算法怎么實現

小億
94
2023-10-30 11:42:56
欄目: 編程語言

下面是使用遞歸算法實現C語言版本的漢諾塔問題:

#include <stdio.h>

void hanoi(int n, char from, char to, char aux) {
    if (n == 1) {
        printf("Move disk 1 from %c to %c\n", from, to);
        return;
    }
    hanoi(n - 1, from, aux, to);
    printf("Move disk %d from %c to %c\n", n, from, to);
    hanoi(n - 1, aux, to, from);
}

int main() {
    int n = 3; // 將三個盤子從A移動到C
    hanoi(n, 'A', 'C', 'B');
    return 0;
}

輸出結果:

Move disk 1 from A to C
Move disk 2 from A to B
Move disk 1 from C to B
Move disk 3 from A to C
Move disk 1 from B to A
Move disk 2 from B to C
Move disk 1 from A to C

該算法使用遞歸的思想,將問題分解為更小的子問題。首先將 n-1 個盤子從起始柱子(from)移動到輔助柱子(aux),然后將最大的盤子從起始柱子(from)移動到目標柱子(to),最后將 n-1 個盤子從輔助柱子(aux)移動到目標柱子(to)。通過遞歸調用,將問題規模縮小,直到只剩下一個盤子需要移動。

0
泸水县| 扎赉特旗| 永康市| 海兴县| 乡城县| 扎囊县| 云梦县| 水富县| 天峻县| 香港| 广安市| 肃南| 若尔盖县| 阳泉市| 大足县| 南溪县| 共和县| 衡南县| 仙居县| 乡城县| 渭南市| 阿城市| 颍上县| 神木县| 林西县| 谷城县| 无棣县| 胶南市| 博罗县| 云梦县| 兴业县| 左贡县| 自贡市| 三江| 喜德县| 新源县| 遵化市| 长沙市| 长垣县| 镇巴县| 自治县|