c语言递归汉诺塔代码
时间: 2023-12-26 15:25:38 浏览: 100
下面是C语言递归汉诺塔代码的实现:
```c
#include <stdio.h>
void hanoi(int paraN, char paraSource, char paraDestination, char paraTransit) {
if (paraN <= 0) {
return;
} else {
hanoi(paraN - 1, paraSource, paraTransit, paraDestination);
printf("%c -> %c \r\n", paraSource, paraDestination);
hanoi(paraN - 1, paraTransit, paraDestination, paraSource);
}
}
int main() {
int n = 3; // 汉诺塔的层数
hanoi(n, 'A', 'C', 'B');
return 0;
}
```
上述代码中,hanoi函数是递归实现汉诺塔的核心代码,其中paraN表示汉诺塔的层数,paraSource表示源柱,paraDestination表示目标柱,paraTransit表示中转柱。在函数中,首先判断paraN是否小于等于0,如果是,则直接返回;否则,将paraN-1层的盘子从源柱移动到中转柱,再将最后一层的盘子从源柱移动到目标柱,最后将paraN-1层的盘子从中转柱移动到目标柱。在main函数中,我们可以设置汉诺塔的层数n,然后调用hanoi函数即可。
阅读全文