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

溫馨提示×

怎么用c語言編寫漢諾塔程序

小億
73
2023-10-23 11:25:32
欄目: 編程語言

以下是使用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);
    
    printf("Steps to solve the Hanoi Tower problem:\n");
    hanoi(n, 'A', 'C', 'B');
    
    return 0;
}

在這個程序中,我們使用遞歸來解決漢諾塔問題。hanoi函數接受四個參數:n表示盤子的數量,from表示起始柱子,to表示目標柱子,aux表示輔助柱子。當n為1時,我們直接將盤子從起始柱子移動到目標柱子上。對于n大于1的情況,我們將n-1個盤子從起始柱子移動到輔助柱子上,然后將第n個盤子從起始柱子移動到目標柱子上,最后將n-1個盤子從輔助柱子移動到目標柱子上。這個過程通過遞歸調用hanoi函數來實現。

main函數中,我們首先從用戶輸入中獲取盤子的數量。然后調用hanoi函數來解決漢諾塔問題,并打印每一步的移動過程。

運行程序后,它會要求你輸入盤子的數量,然后輸出解決漢諾塔問題的步驟。

0
辛集市| 新余市| 西和县| 辽宁省| 客服| 元阳县| 遵化市| 盘锦市| 罗甸县| 沁水县| 丰城市| 重庆市| 喀喇沁旗| 罗平县| 苍溪县| 凤冈县| 台北县| 时尚| 门头沟区| 平谷区| 彝良县| 射洪县| 宁津县| 昌宁县| 英德市| 临安市| 叶城县| 普定县| 团风县| 葵青区| 丰顺县| 长岭县| 普格县| 清水河县| 安顺市| 阳泉市| 宣恩县| 策勒县| 准格尔旗| 阳西县| 武冈市|