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;
}
相关推荐
c++之路几秒前
C++ 预处理器
开发语言·c++
love在水一方几秒前
【Voxel-SLAM】Data Structures / 数据结构文档(二)
数据结构·人工智能·机器学习
2301_809049428 分钟前
WSL无法打开gui界面时,以及安装东西分两种
学习
Via_Neo8 分钟前
乘积最大问题
数据结构·算法
CN-Dust14 分钟前
【C++专题】格式化输出与输入
开发语言·c++·算法
Titan202419 分钟前
C++位图学习笔记
c++·笔记·学习
念恒1230619 分钟前
Python(运算与操作)
python·学习
6Hzlia20 分钟前
【Hot 100 刷题计划】 LeetCode 148. 排序链表 | C++ 归并排序自顶向下
c++·leetcode·链表
自我意识的多元宇宙24 分钟前
数据结构----插入排序
数据结构·算法·排序算法
im_AMBER24 分钟前
Leetcode 162 除了自身以外数组的乘积 | 接雨水
开发语言·javascript·数据结构·算法·leetcode