用 c 语言写一个汉诺塔
时间: 2023-06-09 11:04:45 浏览: 111
用C语言编写的汉诺塔
游戏的程序,能够输出每次移动的步骤和最少步数。
好的,下面是用 C 语言写一个汉诺塔游戏程序的代码:
```c
#include <stdio.h>
void move(int n, char a, char b, char c);
int main() {
int n;
printf("请输入汉诺塔的层数:");
scanf("%d", &n);
printf("移动步骤如下:\n");
move(n, 'A', 'B', 'C');
return 0;
}
void move(int n, char a, char b, char c) {
if (n == 1) {
printf("将第 1 个盘子从 %c 移动到 %c \n", a, c);
}
else {
move(n-1, a, c, b);
printf("将第 %d 个盘子从 %c 移动到 %c \n", n, a, c);
move(n-1, b, a, c);
}
}
```
这个程序中,我们定义了一个函数 `move`,用来移动汉诺塔游戏中的盘子。传入该函数的参数包括当前需要移动的盘子数 `n`,以及当前的三个柱子标记 `a`、`b`、`c`,其中 `a` 是起始柱子,`b` 是中间柱子,`c` 是目标柱子。在每一次移动盘子的过程中,我们都可以通过递归对 `move` 函数进行调用,来实现汉诺塔游戏的规则。
最后,我们只需要在主函数中输入需要移动的盘子数,让程序能够打印出每一步的移动操作,并输出最少的步数即可。
阅读全文