中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c語言怎么實現漢諾塔

小億
84
2024-01-13 19:52:03
欄目: 編程語言

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;
    printf("Enter the number of disks: ");
    scanf("%d", &n);
    hanoi(n, 'A', 'C', 'B');
    return 0;
}

該程序使用遞歸函數hanoi來實現漢諾塔。該函數接受四個參數:n表示要移動的盤子數目,from表示起始柱子,to表示目標柱子,aux表示輔助柱子。

遞歸的終止條件是當n等于1時,直接將盤子從起始柱子移動到目標柱子。否則,先將n-1個盤子從起始柱子移動到輔助柱子,然后將最后一個盤子從起始柱子移動到目標柱子,最后將n-1個盤子從輔助柱子移動到目標柱子。

main函數中,用戶輸入要移動的盤子數目,然后調用hanoi函數來執行移動操作。

注意:以上代碼僅為示例,沒有進行輸入驗證和錯誤處理。在實際應用中,應該考慮輸入的有效性和錯誤情況的處理。

0
裕民县| 麦盖提县| 南丹县| 临猗县| 获嘉县| 阆中市| 通渭县| 资溪县| 海宁市| 麟游县| 岐山县| 虎林市| 安康市| 宁波市| 商南县| 通州市| SHOW| 齐河县| 蓝田县| 乾安县| 洛浦县| 南城县| 陆川县| 东丽区| 枣强县| 友谊县| 福安市| 三明市| 五莲县| 拜泉县| 苏尼特右旗| 虎林市| 交口县| 南投市| 泾阳县| 丁青县| 金川县| 乐昌市| 北宁市| 河西区| 新兴县|