c语言汉诺塔程序设计
- 格式:docx
- 大小:2.97 KB
- 文档页数:2
c语言汉诺塔程序设计
下面是一个用C语言实现汉诺塔问题的程序:
```c
#include
void hanoi(int n, char from, char to, char aux) {
if (n == 1) {
printf("Move disk 1 from %c to %c\n", from, to);
return;
}
hanoi(n - 1, from, aux, to);
printf("Move disk %d from %c to %c\n", n, from, to);
hanoi(n - 1, aux, to, from);
}
int main() {
int n;
printf("Enter the number of disks: ");
scanf("%d", &n);
printf("Steps to solve the Hanoi Tower problem:\n");
hanoi(n, 'A', 'C', 'B');
return 0;
}
```
这个程序使用递归的方式解决汉诺塔问题。函数`hanoi`接受四个参数:盘子的数量`n`,起始柱子`from`,目标柱子`to`,辅助柱子`aux`。当盘子数量为1时,直接将盘子从起始柱子移动到目标柱子。否则,先将n-1个盘子从起始柱子移动到辅助柱子,然后将最后一个盘子从起始柱子移动到目标柱子,最后将n-1个盘子从辅助柱子移动到目标柱子。