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

溫馨提示×

c語言中怎么用遞歸法求漢諾塔

小億
83
2024-06-11 13:40:38
欄目: 編程語言

漢諾塔問題是一個經典的遞歸問題,可以使用遞歸方法來求解。下面是一個使用C語言編寫的求解漢諾塔問題的程序示例:

#include <stdio.h>

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

int main() {
    int num_disks = 3; // 漢諾塔的盤數
    hanoi(num_disks, 'A', 'C', 'B'); // 將num_disks個盤子從A桿移動到C桿
    return 0;
}

在上面的代碼中,hanoi函數使用遞歸的方式來解決漢諾塔問題。參數n表示盤子的數量,from_rodto_rodaux_rod分別表示三根柱子的標識(A、B、C)。在每一次遞歸調用中,首先將n-1個盤子從起始柱子移動到輔助柱子,然后將第n個盤子從起始柱子移動到目標柱子,最后將n-1個盤子從輔助柱子移動到目標柱子。通過遞歸調用,可以實現將所有盤子從起始柱子移到目標柱子的操作。

0
桃源县| 大冶市| 西丰县| 孝义市| 武冈市| 西平县| 古田县| 北宁市| 科尔| 嘉黎县| 新密市| 夏津县| 讷河市| 曲周县| 渭南市| 余姚市| 玉溪市| 广饶县| 洛隆县| 延吉市| 石楼县| 黎川县| 合川市| 平顺县| 正镶白旗| 柘城县| 海丰县| 班戈县| 思茅市| 滦南县| 寿阳县| 葫芦岛市| 沭阳县| 双辽市| 固原市| 措勤县| 绵竹市| 高唐县| 呼伦贝尔市| 峨眉山市| 高州市|