酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c语言设计解决hanoi问题的算法及程序:a、b和c三个塔座,在塔座a上有n个直径各不相同,从小到大依次编号为1~n的盘片。要求将a塔座上的n个盘片移到塔座c上。

以下是使用 C 语言解决汉诺塔问题的程序示例: ```c #include <stdio.h> // 移动盘子的函数 void hanoi(int n, char from_rod, char aux_rod, char to_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, to_rod, aux_rod); printf("Move disk %d from rod %c to rod %c\n", n, from_rod, to_rod); hanoi(n - 1, aux_rod, from_rod, to_rod); } // 测试示例 int main() { int n = 3; // 要移动的盘子数量 hanoi(n, 'A', 'B', 'C'); return 0; } ``` 在上述代码中,`hanoi` 函数接受四个参数:要移动的盘子数量 `n`,起始塔座 `from_rod`,辅助塔座 `aux_rod`,目标塔座 `to_rod`。通过递归的方式来实现盘子的移动,并打印出每一步的移动过程。在 `main` 函数中可以设置要移动的盘子数量并调用 `hanoi` 函数。 [2024-11-08 12:06:51 | AI写代码神器 | 313点数解答]

相关提问