C语言实现汉诺塔问题
时间: 2023-12-04 19:41:00 浏览: 174
汉诺塔问题是一个经典的递归问题,以下是C语言实现汉诺塔问题的代码:
```c
#include <stdio.h>
void hanoi(int n, char A, char B, char C) {
if (n == 1) {
printf("%c -> %c\n", A, C);
} else {
hanoi(n - 1, A, C, B);
printf("%c -> %c\n", A, C);
hanoi(n - 1, B, A, C);
}
}
int main() {
int n;
printf("请输入汉诺塔的层数:");
scanf("%d", &n);
hanoi(n, 'A', 'B', 'C');
return 0;
}
```
相关问题
c语言实现汉诺塔问题
C语言可以通过递归的方式实现汉诺塔问题。下面是一个C语言的实现代码:
#include <stdio.h>
void move(char a, char b) {
printf("%c -> %c\n", a, b);
}
void hanoi(int n, char from, char temp, char to) {
if (n == 1) {
move(from, to);
} else {
hanoi(n - 1, from, to, temp);
move(from, to);
hanoi(n - 1, temp, from, to);
}
}
int main() {
int n;
printf("请输入盘子个数:");
scanf("%d", &n);
printf("移动步骤为:\n");
hanoi(n, 'A', 'B', 'C');
return 0;
}
以上代码中,move函数用于打印盘子的移动步骤,hanoi函数用于实现汉诺塔问题的递归算法。在主函数中,通过输入盘子个数n来调用hanoi函数,并打印出移动的步骤。
有c语言实现汉诺塔问题
可以使用递归算法来实现汉诺塔问题的解决。具体实现方法可以参考以下代码:
#include <stdio.h>
void hanoi(int n, char A, char B, char C) {
if (n == 1) {
printf("%c -> %c\n", A, C);
} else {
hanoi(n-1, A, C, B);
printf("%c -> %c\n", A, C);
hanoi(n-1, B, A, C);
}
}
int main() {
int n;
printf("请输入汉诺塔的层数:");
scanf("%d", &n);
hanoi(n, 'A', 'B', 'C');
return ;
}
阅读全文