写一个C++汉诺塔,带过程
时间: 2024-05-05 14:18:58 浏览: 98
当然,我会很乐意为你解答。下面是过程的C汉诺塔代码:
```
#include <stdio.h>
void hanoi(int n, char from, char to, char temp); //函数声明
int main()
{
int n;
printf("请输入汉诺塔的层数: ");
scanf("%d", &n); //输入汉诺塔层数
hanoi(n, 'A', 'C', 'B'); //函数调用
return 0;
}
void hanoi(int n, char from, char to, char temp)
{
if(n == 1)
{
printf("第1个盘子从%c杆移到%c杆\n", from, to);
}
else
{
hanoi(n - 1, from, temp, to);
printf("第%d个盘子从%c杆移到%c杆\n", n, from, to);
hanoi(n - 1, temp, to, from);
}
return;
}
```
在上面的代码中,我们定义了一个hanoi函数,它接受四个参数:n为盘子的数量,from为起始杆的名称,to为目标杆的名称,temp为临时杆(中转杆)的名称。当函数递归结束时,从起始杆上的n个盘子将被移到to杆上。
在main函数中,我们要求用户输入要汉诺塔的层数n,并调用hanoi函数。然后,hanoi函数会将解决问题的过程打印出来。
希望本篇文章能够帮助到您!如有其他问题欢迎随时提出。
阅读全文