hanoi塔问题的递归算法c
时间: 2023-09-24 15:02:48 浏览: 90
c语言汉诺塔的递归算法
5星 · 资源好评率100%
以下是Hanoi塔问题的递归算法C代码:
```
#include <stdio.h>
void hanoi(int n, char from, char to, char via) {
if(n == 1) {
printf("%c -> %c\n", from, to);
return;
}
hanoi(n - 1, from, via, to);
printf("%c -> %c\n", from, to);
hanoi(n - 1, via, to, from);
}
int main() {
int n = 3; // Hanoi塔的层数
hanoi(n, 'A', 'C', 'B');
return 0;
}
```
其中,`n`表示Hanoi塔的层数,`from`表示起始柱子,`to`表示目标柱子,`via`表示中间柱子。当`n`等于1时,直接将盘子从起始柱子移动到目标柱子;否则,先将前`n-1`个盘子从起始柱子移动到中间柱子,再将最后一个盘子从起始柱子移动到目标柱子,最后将前`n-1`个盘子从中间柱子移动到目标柱子。
阅读全文