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

溫馨提示×

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
申扎县| 五家渠市| 绥江县| 长岛县| 于田县| 新兴县| 修武县| 庄河市| 高密市| 上犹县| 湘潭市| 武鸣县| 恩平市| 乃东县| 吉隆县| 阳朔县| 洛阳市| 奉化市| 漳浦县| 阿拉善盟| 宝坻区| 中卫市| 澄城县| 南岸区| 兰考县| 沁源县| 镇远县| 紫金县| 南通市| 红原县| 尤溪县| 广西| 连城县| 共和县| 铁力市| 敦煌市| 黑河市| 九江县| 达尔| 乌审旗| 厦门市|