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

溫馨提示×

怎么用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
绩溪县| 昭苏县| 通化县| 全州县| 大姚县| 红安县| 扶绥县| 河北省| 邵阳市| 从江县| 绍兴县| 中方县| 昆明市| 和静县| 河北省| 泽普县| 昆山市| 柳州市| 龙州县| 集贤县| 济南市| 龙岩市| 昌江| 康乐县| 德格县| 马山县| 南康市| 平湖市| 延安市| 南京市| 贡觉县| 永济市| 同江市| 丹凤县| 当雄县| 安国市| 常德市| 璧山县| 深圳市| 广州市| 萍乡市|