递归法写出汉诺塔程序c语言
时间: 2023-08-24 22:06:25 浏览: 93
好的,下面是汉诺塔的递归实现的 C 语言程序:
```c
#include <stdio.h>
void move(int n, char a, char b, char c);
int main()
{
int n;
printf("请输入汉诺塔的层数:");
scanf("%d", &n);
move(n, 'A', 'B', 'C');
return 0;
}
void move(int n, char a, char b, char c)
{
if (n == 1)
{
printf("将第 %d 个盘子从 %c 移动到 %c\n", 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` 函数实现了汉诺塔的递归操作。首先,判断如果只有一个盘子,则直接将它从 `a` 柱移动到 `c` 柱。否则,将前 `n - 1` 个盘子从 `a` 柱移动到 `b` 柱,然后将第 `n` 个盘子从 `a` 柱移动到 `c` 柱,最后将前 `n - 1` 个盘子从 `b` 柱移动到 `c` 柱。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)