提到经典的递归算法问题,怎能少了汉诺塔?它就像一座智慧的灯塔,在编程世界中指引方向。今天,让我们用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 num = 3; // 盘子数量
hanoi(num, 'A', 'C', 'B');
return 0;
}
```
运行时,程序会一步步输出移动步骤,宛如魔法般优雅!💡递归的魅力就在于简洁与强大兼具,让人感叹算法之美。快来试试吧,也许你也能成为解谜高手!💪