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;
}
相关推荐
赫瑞9 小时前
数据结构中的排列组合 —— Java实现
java·开发语言·数据结构
大熊背9 小时前
ISP Pipeline中Lv实现方式探究之三--lv计算定点实现
数据结构·算法·自动曝光·lv·isppipeline
小橘子8319 小时前
(学习)Claude Code 源码架构深度解析
学习·程序人生·架构
初夏睡觉9 小时前
c++1.3(变量与常量,简单数学运算详解),草稿公放
开发语言·c++
西岸行者10 小时前
BF信号是如何多路合一的
算法
阿拉斯攀登10 小时前
从入门到实战:CMake 与 Android JNI/NDK 开发全解析
android·linux·c++·yolo·cmake
大熊背10 小时前
ISP Pipeline中Lv实现方式探究之一
算法·自动白平衡·自动曝光
罗西的思考11 小时前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
diablobaal11 小时前
云计算学习100天-第102天-Azure入门4
学习·云计算·azure
Liudef0611 小时前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算