当前位置: 首页 > 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;
}

http://www.xdnf.cn/news/500689.html

相关文章:

  • 使用Langfuse和RAGAS,搭建高可靠RAG应用
  • ctfshow——web入门254~258
  • JavaScript入门【2】语法基础
  • webpack 学习
  • 并发学习之synchronized,JVM内存图,线程基础知识
  • 【双指针】缺失的第一个正整数
  • Visual Studio2022跨平台Avalonia开发搭建
  • 混合学习:Bagging与Boosting的深度解析与实践指南
  • 系统架构设计(七):数据流图
  • 售前工作.工作流程和工具
  • 从专家编码到神经网络学习:DTM 的符号操作新范式
  • tp5 关键词搜索商品时进行关键词拆分
  • Slidev集成Chart.js:专业数据可视化演示文稿优化指南
  • 黄点追踪是什么?:揭秘打印机隐形识别机制的技术分析
  • windows编写和调试代码工具——IDE安装
  • QMK 宏(Macros)功能详解(实战部分)
  • muduo库TcpConnection模块详解——C++
  • CMake基础及操作笔记
  • C语言—再学习(结构体)
  • 【springcloud学习(dalston.sr1)】Zuul路由访问映射规则配置及使用(含源代码)(十二)
  • 玩转 AI · 思考过程可视化
  • 【gitee 初学者矿建仓库】
  • 【Ragflow】22.RagflowPlus(v0.3.0):用户会话管理/文件类型拓展/诸多优化更新
  • 51单片机课设基于GM65模块的二维码加条形码识别
  • python第二十八天
  • Oracle APEX IR报表下载CSV文件的方法
  • [Java] 方法和数组
  • FauxGen:一款由 CodeBuddy 主动构建的假数据生成器
  • 语音转文字
  • 使用Spring Boot与Spring Security构建安全的RESTful API