以下是用 C 语言实现的汉诺塔问题算法的代码示例:
```c
#include
void moveDisk(int n, char from, char to, char via) {
if (n == 1) { //只有一个盘子的情况
printf("Move disk 1 from %c to %c\n", from, to);
return;
} else { //有多个盘子的情况
moveDisk(n - 1, from, via, to); //将上面的盘子从起始柱移动到中间柱子上
printf("Move disk %d from %c to %c\n", n, from, to); //将底下的盘子从起始柱子移动到目标柱子上
moveDisk(n - 1, via, to, from); //将中间柱子上的盘子移动到目标柱子上
}
}
int main() {
int n; // 盘子的数量
printf("Enter the number of disks: ");
scanf("%d", &n); // 输入盘子的数量
moveDisk(n, 'A', 'C', 'B'); // A 为起始柱子,C 为目标柱子,B 为中间柱子
return 0;
}
```
在这个示例代码中,我们定义了一个 `moveDisk` 函数来实现汉诺塔问题的递归解法。在函数中,我们首先判断只有一个盘子的情况,然后递归调用 `moveDisk` 函数来将上面的盘子从起始柱子移动到中间柱子上,再将底下的盘子从起始柱子移动到目标柱子上,最后将中间柱子上的盘子移动到目标柱子上。最后在主函数中,我们通过调用 `moveDisk` 函数来实现汉诺塔问题的求解。