当前位置: 首页 > news >正文

题单:汉诺塔问题

题目描述

如下图所示,设有 nn 个大小不等的中空圆盘,按照从小到大的顺序叠套在立柱 A 上,另有两根立柱 B 和 C 。

aew2vhzl.webp

现在要求把全部圆盘从 A 柱(称为源柱)移到 C 柱(称为目标柱),移动过程中可借助 B 柱(称为中间柱)。

移动时有如下要求:

  1. 一次只许移动一个盘。
  2. 任何时候、任何柱子上不允许把大盘放在小盘上边。
  3. 可使用任意一根立柱暂存圆盘。

问:如何用最少步数实现 nn 个盘子的移动?请打印出具体移动方案。

输入格式

一行一个正整数 n(1≤n≤18)n(1≤n≤18) 。

输出格式

输出若干行,第 ii 行表示第 ii 步的移动方案。

具体格式参见输出样例。

样例 #1

样例输入 #1

3

样例输出 #1

A->C
A->B
C->B
A->C
B->A
B->C
A->C
#include<bits/stdc++.h>
using namespace std;  
void hanio(int n,char a,char b,char c)
{if(n==0){return ;}hanio(n-1,a,c,b);cout<<a<<"->"<<c<<endl; hanio(n-1,b,a,c);
}
int main(){int n;cin>>n;hanio(n,'A','B','C');return 0;
}

相关文章:

  • 深入了解 VPC 端点类型 – 网关与接口
  • Java的线程通信机制是怎样的呢?
  • Java、ssm(AI) 2025/5/17
  • MySQL 中 JOIN 和子查询的区别与使用场景
  • 《棒球万事通》球类运动有哪些项目·棒球1号位
  • 5.2.1_2二叉树的性质
  • Autosar Nvm下电存储实现方式-基于ETAS工具
  • Codeforces Round 1024 (Div.2)
  • Mysql数据库之集群进阶
  • 日志系统**
  • 在WSL中的Ubuntu发行版上安装Anaconda、CUDA、CUDNN和TensorRT
  • 深度学习(第3章——亚像素卷积和可形变卷积)
  • 从零开发 1688 数据接口:商品详情页实时采集 API 接入详解
  • VC++6.0分步执行常见问题及解决方案
  • Redis——三大策略
  • TTS:F5-TTS 带有 ConvNeXt V2 的扩散变换器
  • TXT记录解析技术深度解析与应用实践
  • 阿里巴巴视觉生成大模型1.2.1版本深度部署指南
  • 【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案
  • Data whale LLM universe
  • AI赋能科学红毯,机器人与科学家在虚实之间叩问“科学精神”
  • 浙江一家长称小学老师打孩子还威胁要从3楼扔下,当地警方已立案
  • 特朗普指控FBI前局长“暗示刺杀总统”,“8647”藏着什么玄机?
  • 大环线呼之欲出,“金三角”跑起来了
  • 为什么越来越多景区,把C位留给了书店?
  • 经济日报评外卖平台被约谈:行业竞争不能背离服务本质