C语言求解汉诺塔问题

C语言解决汉诺塔问题:

c 复制代码
#include <stdio.h>
 
void move(int n, char a, char b, char c)
{
    if(n == 1){
        printf("%c --> %c\n", a, c);
        return;
    }
    move(n - 1, a, c, b);
    printf("%c --> %c\n", a, c);
    move(n - 1, b, a, c);
}
 
int main()
{
    int n;
    printf("请输入数字n:");
    scanf("%d", &n);
    printf("移动步骤如下:\n");
    move(n, 'A', 'B', 'C');
    return 0;
}

在此代码中,我们定义了一个 move 函数,其中 n 表示要移动的盘子数目,a, b, c 分别表示 3 根柱子的名称。

当盘子数为 1 时,我们直接将盘子从 A 柱子移动到 C 柱子。当盘子数大于 1 时,我们先将 n - 1 个盘子从 A 柱子移动到 B 柱子,然后将最后一个盘子从 A 柱子移动到 C 柱子,最后将 n - 1 个盘子从 B 柱子移动到 C 柱子。

相关推荐
昌原的儿子LEO11 分钟前
Linux进程知识点总结
linux·服务器·c语言·数据库
dtq042423 分钟前
数据结构 - 线性表 - 单链表
数据结构
万法若空29 分钟前
对数恒等式
人工智能·算法·机器学习
AI小码1 小时前
如何让AI帮你构建项目?七级方法
人工智能·算法·计算机·ai·程序员·大模型·编程
1000世界小札1 小时前
排序算法全景总结:从 O(n²) 到 O(n log n),再到线性时间(附完整对比与选型指南)
数据结构·算法·排序算法
一直C1 小时前
【Linux应用编程】深入理解Linux多任务机制:进程原理、状态转换与进程控制实战
linux·开发语言·算法·ubuntu·vim·visual studio code
玉树临风ives2 小时前
atcoder ABC 472 题解
数据结构·c++·算法
AI服务老曹2 小时前
抽烟识别算法接入 AI 视频分析平台的流程与误报优化指南
人工智能·算法·音视频
阳明山水2 小时前
销量预测2025—2026:技术演进、实证发现与系统架构的系统性综述
人工智能·深度学习·算法·机器学习·架构