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个盘子从辅助柱子移动到目标柱子。