酷代码 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 %c to %c\n", from_rod, to_rod); return; } hanoi(n - 1, from_rod, to_rod, aux_rod); printf("Move disk %d from %c to %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`。通过递归的方式来实现汉诺塔的移动过程,并打印出每一步的移动操作。 [2024-11-09 17:40:13 | AI写代码神器 | 295点数解答]

相关提问