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;
}
相关推荐
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20162 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本2 天前
离散数学第六课
学习·离散数学
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛2 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
m0_547486662 天前
《数据结构教程》全套 PPT课件2026
数据结构