递归求汉诺塔c语言
时间: 2023-07-02 19:10:59 浏览: 105
c语言实现递归汉诺塔
以下是递归求解汉诺塔问题的 C 语言代码:
```c
#include <stdio.h>
void hanoi(int n, char A, char B, char C) {
if (n == 1) {
printf("%c -> %c\n", A, C);
} else {
hanoi(n - 1, A, C, B);
printf("%c -> %c\n", A, C);
hanoi(n - 1, B, A, C);
}
}
int main() {
int n = 3; // 汉诺塔层数
hanoi(n, 'A', 'B', 'C');
return 0;
}
```
在这个程序中,`hanoi` 函数是递归主体部分,用来解决汉诺塔问题。它有四个参数:`n` 表示当前盘子的个数;`A`、`B`、`C` 分别表示三个柱子的名称。当 `n` 等于 `1` 时,直接将最后一个盘子从 A 移动到 C。否则,先将 `n-1` 个盘子从 A 移动到 B,再将最后一个盘子从 A 移动到 C,最后将 `n-1` 个盘子从 B 移动到 C。
阅读全文