44| 汉诺塔问题

代码实现

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int n;
char a, b, c;

// 递归函数:把 n 个盘子从 src 杆,借助 tmp 杆,移动到 dst 杆
void dfs(int n, char src, char tmp, char dst)
{
    if (n == 0) return;
    // 1. 先把 n-1 个盘子从 src 移到 tmp,借助 dst
    dfs(n-1, src, dst, tmp);
    // 2. 把第 n 个盘子从 src 移到 dst
    cout << src << "->" << n << "->" << dst << endl;
    // 3. 把 n-1 个盘子从 tmp 移到 dst,借助 src
    dfs(n-1, tmp, src, dst);
}

int main()
{
    cin >> n >> a >> b >> c;
    // 题目要求:把 a 杆的 n 个盘子移到 b 杆,借助 c 杆
    dfs(n, a, c, b);
    return 0;
}
相关推荐
dtq0424几秒前
数据结构 - 线性表 - 双向链表
c语言·数据结构·学习
不正经学生4 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
毕竟是shy哥6 小时前
计算YOLO数据集中每个类的目标数
算法·yolo·机器学习
M78佐菲6 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
恋恋西风6 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
Brilliantwxx6 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
噜~噜~噜~7 小时前
操作系统笔记-2.3.5.1.1生产者-消费者问题
笔记·操作系统
BizzZ_7 小时前
C++(22)——类型转换和IO流
开发语言·c++
yi.Ist7 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
晊晌_h8 小时前
嵌入式从0到精通——数据结构总结[特殊字符]
数据结构·算法·排序算法